У меня есть датафрейм, как показано ниже:
score pvpdate
0 {2: 29, 4: 24} 2018-05-23
1 {2: 23, 4: 24} 2018-05-29
2 {2: 36, 4: 25} 2018-05-23
И я хочу отфильтровать столбец оценки и получить результат, как
score1 score2 pvpdate
0 29 24 2018-05-23
1 23 24 2018-05-29
2 36 25 2018-05-23
Как я могу это сделать? Я пробовал способы, которыми этот столбец оценки похож на столбец json, и он не работает.
2 ответа
Если хотите, чтобы имена столбцов из ключей словарей извлекали столбец с помощью { {X0}}, используйте конструктор DataFrame
и измените имена столбцов на add_prefix
, последний join
все столбцы без score
:
df = pd.DataFrame(df.pop('score').values.tolist()).add_prefix('score').join(df)
print (df)
score2 score4 pvpdate
0 29 24 2018-05-23
1 23 24 2018-05-29
2 36 25 2018-05-23
Anf, если вы хотите, чтобы имена столбцов были созданы по длине анализируемого DataFrame, используйте f-string
s:
#if stored dictionary like strings
df['score']=df['score'].map(ast.literal_eval)
df1 = pd.DataFrame(df.pop('score').values.tolist())
df1.columns = [f'score{i}' for i in range(1, len(df1.columns) + 1)]
df = df1.join(df)
print (df)
score1 score2 pvpdate
0 29 24 2018-05-23
1 23 24 2018-05-29
2 36 25 2018-05-23
Столбец словаря в фрейме данных pandas Я нашел ответ от этого, используя import ast df ['score'] = df ['score']. map (лямбда d: ast.literal_eval (d)) dfNew = df.join ( pd.DataFrame ( DF [ ' оценка '] . to_dict ( ) ) . Т) код >
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.