#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Я создал фрейм данных из такого словаря:
import pandas as pd
data = {'Name': 'Ford Motor', 'AssetType': 'Common Stock', 'Exchange': 'NYSE'}
records = []
statement = {}
for key, value in data.items():
statement = {}
statement[key] = value
records.append(statement)
df = pd.DataFrame(records)
Если я поступлю таким образом, результат будет выглядеть следующим образом:
Name AssetType Exchange
0 Ford Motor NaN NaN
1 NaN Common Stock NaN
2 NaN NaN NYSE
Я хочу, чтобы значения в первой строке и результат выглядели так:
Name AssetType Exchange
0 Ford Common Stock NYSE
Комментарии:
1.
pd.DataFrame(data, index=[0])
?2. Вы уверены, что хотите
AssetType
бытьMotor
, а не'Common Stock'
нет?3. извините, ошибки опечатки. Я хочу, чтобы тип активов был обычным
Ответ №1:
Просто поместите data
внутри списка []
при создании фрейма данных:
import pandas as pd
data = {'Name': 'Ford Motor', 'AssetType': 'Common Stock', 'Exchange': 'NYSE'}
df = pd.DataFrame([data])
print(df)
С принтами:
Name AssetType Exchange
0 Ford Motor Common Stock NYSE
Ответ №2:
Существует множество способов, которыми вы можете захотеть превратить данные (dict, list, вложенный список и т. Д.) В фрейм данных. Pandas также включает в себя множество методов создания, некоторые из которых будут перекрываться, что затрудняет запоминание того, как создавать dfs из данных. Вот несколько способов, которыми вы могли бы сделать это для своих данных:
-
df = pd.DataFrame([data])
-
df = pd.Series(data).to_frame().T
-
pd.DataFrame.from_dict(data, orient="index").T
-
pd.DataFrame.from_records(data, index=[0])
imo, from_dict
наименее интуитивно понятный (я никогда не получаю правильные аргументы с первой попытки). Я считаю, что сосредоточение внимания на одном методе построения более запоминающимся, чем использование другого каждый раз; Я использую pd.DataFrame(...)
and from_records(...)
больше всего.
Комментарии:
1. Здравствуйте, спасибо за вашу помощь. В словаре есть 3 пары ключа и значения. Если я хочу выбрать только 2 пары ключа и значения для создания фрейма данных, могу ли я узнать, что я могу сделать?
2. Несколько способов — если ваши данные невелики, просто создайте фрейм данных и передайте список столбцов, которые вы хотите сохранить в оригинале, что-то вроде
subset_cols = [c for c in df.columns if c != "Name"]; df = df[subset_cols]