当前数据帧输出如下所示我需要另一个数据帧
将pandas导入为pd
df = pd.DataFrame(' c:\ data \ text.csv')
print(df)
我的输出如下:
a b c d e
0 1 10 {'a1':40,'b1':60,'c1':90,'d1':100,'e1':50,'f1':75} 10000 899
1 1 65 {'a1':35,'b1':535,c1': 343,'d1':89,'e1':67,'f1':45} 90000 789
假设我的指数大约在50,000到1,00,000
之间我试过了:
DF1 = pd.DataFrame(列表(df.c))
打印(DF1)
a1 b1 c1 d1 e1 f1
40 60 90 100 50 75
35 535 343 89 67 45
然后我试了
df2 = pd.DataFrame(df.a)
df3 = pd.DataFrame(df.b)
df4 = pd.DataFrame(df.d)
df5 = pd.DataFrame(df.e)
frames = [df1,df2,df3,df4,df5]
result = pd.concat(frames)
仍然无法得到如下预期结果:
a b a1 b1 c1 d1 e1 f1 d e
0 1 10 40 60 90 100 50 75 10000 899
1 1 65 35 535 343 89 67 45 90000 789
答案 0 :(得分:0)
这是你可以做的: -
假设DataFrame
的名称为df
,
将dicts
的每个df[c]
转换为list
。现在您需要解压缩此列表以添加到DataFrame
。解压缩以获得适当的list
并添加到df
。
list_abcdef = list(map(list,zip(*[[dic['a1'],dic['b1'],dic['c1'],dic['d1'],dic['e1'],dic['f1']] for dic in df['c']])))
df1 = df[['a','b']]
df1['a1'],df1['b1'],df1['c1'],df1['d1'],df1['e1'],df1['f1'] = list_abcdef
df1['d'],df1['e'] = df['d'],df['e']
df1
应该是您需要的DataFrame
。请知道它是否适合您。