首页 文章

Python DataFrame特定列的转换

提问于
浏览
1

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

1

将pandas导入为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(列表(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

1 回答

  • 0

    这是你可以做的: -

    假设 DataFrame 的名称是 df ,将 df[c]dicts 转换为 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 . 请知道它是否适合您 .

相关问题