Python 将复杂列(类似字典)转换为多个列
我有一个数据框,有两行和一列:Python 将复杂列(类似字典)转换为多个列,python,pandas,dictionary,data-munging,Python,Pandas,Dictionary,Data Munging,我有一个数据框,有两行和一列: 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;)
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
- 可能有两行以上
- 可能会有更多的列,但这不会影响问题
列表理解
,然后转置,和:
可能的重复我不认为它是重复的,我不明白它是如何解决我的问题的(特别是在熊猫身上)@Farhan.K-谢谢。
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