1

我有一个两行单列的数据框:

import pandas as pd
raw_data = {'T': [[(0, 0.5), (1, 0.25), (2, 0.25)], [(1, 0.99)]]}
df = pd.DataFrame(raw_data, columns=['T'])

#T 
#[(0, 0.5), (1, 0.25), (2, 0.25)]
#[(1, 0.99)]

如您所见,行是一种字典,我知道字典元素的最大数量(在我们的例子中,如果您从 0 开始计数,则为 3 或 2;))。我想在此数据框中使用以下值创建额外的三列T0、T1、T2 :

T0   T1    T2 (df header)

0.5  0.25  0.25

0    0.99  0
  • 可能超过 2 行
  • 可能有更多的列,但它不应该影响问题
4

1 回答 1

2

使用list comprehensionwith concat,然后转置fillnaadd_prefix

df=pd.concat([pd.Series(dict(x)) for x in raw_data['T']], axis=1).T.fillna(0).add_prefix('T')
print (df)
    T0    T1    T2
0  0.5  0.25  0.25
1  0.0  0.99  0.00
于 2018-02-13T13:44:07.440 回答