1

当前数据帧输出如下我需要另一个数据帧

1

将熊猫导入为 pd

df = pd.DataFrame('c:\data\text.csv')

打印 (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(list(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
4

1 回答 1

0

这是你可以做的: -

假设名称DataFramedf,将每个转换dicts为。现在您需要解压缩此列表以添加到. 解压缩以获得适当的并添加到.df[c]listDataFramelistdf

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你需要的。请告诉它是否适合您。

于 2017-12-01T13:58:39.480 回答