我有一个像这样的数据框:
Date comp
01-01-2022 {'dfp':25.02,'ftp':12.06}
01-02-2022 {'dfp':12.01,'ftp':40.05}
01-03-2022 {'dfp':50.20,'ftp':35.25}
我正在尝试创建一个新列,其中仅包含 comp 列中的 dfp 值。
预期输出:
Date comp New
01-01-2022 {'dfp':25.02,'ftp':12.06} 25.02
01-02-2022 {'dfp':12.01,'ftp':40.05} 12.01
01-03-2022 {'dfp':50.20,'ftp':35.25} 50.20
我尝试了以下代码来执行相同的操作:
def new_col(x):
for i in range(len(df)):
return x[i]['dfp']
df['New'] = df['comp'].apply(new_col)
但是上面的代码会产生错误。我哪里出错了?
可以使用 .str 访问器从 pandas 数据框中的字典中获取数据:
df['New'] = df['comp'].str['dfp']
输出:
Date comp New
0 01-01-2022 {'dfp': 25.02, 'ftp': 12.06} 25.02
1 01-02-2022 {'dfp': 12.01, 'ftp': 40.04} 12.01
2 01-03-2022 {'dfp': 50.2, 'ftp': 35.25} 50.20