【发布时间】:2017-10-29 23:43:39
【问题描述】:
我有一个这样的熊猫数据框p_df
date_loc timestamp
id
1 2017-05-29 1496083649
2 2017-05-29 1496089320
3 2017-05-29 1496095148
4 2017-05-30 1496100936
...
还有一个像这样的字典
observations = {
'1496089320': {
'col_a: 'value_a',
'col_b: 'value_b',
'col_c: 'n/a'
},
'1496100936' : {
'col_b: 'value_b'
},
...
}
当字典中的键也存在于timestamp 列中时,我想将observations 子字典中包含的所有值及其各自的键作为列名添加,以便生成的数据框为
date_loc timestamp col_a col_b col_c
id
1 2017-05-29 1496083649
2 2017-05-29 1496089320 value_a value_b n/a
3 2017-05-29 1496095148
4 2017-05-30 1496100936 value_b
...
我尝试了几种方法(agg()、apply()、iterrows()),但还没有任何效果。例如,这是我的最后一次尝试
p_df['col_a'] = ''
p_df['col_b'] = ''
p_df['col_c'] = ''
for index, row in p_df.iterrows():
ts = p_df.loc[index, 'timestamp']
if ts in observations:
# how to concat column values in this row?
# end if
#end for
可能我觉得还有比迭代数据框行更好的方法,所以我愿意接受比这更好的选择。
【问题讨论】:
标签: python pandas dictionary dataframe append