扁平列类型系列或列表的数据框

时间:2019-10-08 14:48:28

标签: python pandas list dataframe

我想从我的起始数据集中得到一个数据集,如下所示:

time          details                  bis          as             go
01:20       {'direction': 'nord',      abc    {'a':12,'b':20 }     yes
                'label': 'one',
                'media': 'yes'}

01:25       {'direction': 'est',        def    {'a':2,'b':15 }     no
                'label': 'one',
                'media': 'no'}

所需结果:

time     direction     label     media      bis       a     b     go
01:20      nord         one       yes       abc       12    20     yes

01:25      est         one         no       def        2    15     no

2 个答案:

答案 0 :(得分:1)

使用pd.concat

result = pd.concat([df[['time', 'bis', 'go']],
                    pd.DataFrame.from_records(df.details),
                    pd.DataFrame.from_records(df['as'])], axis=1)

print(result)

输出

    time  bis   go direction label media   a   b
0  01:20  abc  yes      nord   one   yes  12  20
1  01:25  def   no       est   one    no   2  15

您可以像这样重新排列列:

result = result[['time', 'direction', 'label', 'media', 'bis', 'a', 'b', 'go']]

答案 1 :(得分:1)

使用pd.DataFrame + pd.concat

df1=pd.DataFrame(df['details'].tolist())
df2=pd.DataFrame(df['as'].tolist())
new_df=pd.concat([df[['time','bis','go']],df1,df2],axis=1)
print(new_df)

    time  bis   go direction label media   a   b
0  01:20  abc  yes      nord   one   yes  12  20
1  01:25  def   no       est   one    no   2  15