如何在 pandas 数据框中使用系列展平列?

han*_*zgs 1 python pandas

我有一个 pandas df,我需要压平系列列

data = pd.DataFrame([['TRAN',[{'Name':'Ben','Age':'24'}],'T','Good'],
                     ['LMI',[{'Name':'Zoe','Age':'32'}],'U','Better'],
                     ['ARN',[{'Name':'Jack','Age':'28'}],'V','Best']
                     ], 
                    columns=['Type', 'Applicant', 'Decision', 'Action'])
Run Code Online (Sandbox Code Playgroud)

数据是 pandas 数据框,申请人列是一个系列,

#data
type(data)
Out[25]: pandas.core.frame.DataFrame
#Applicant Column
type(data.Applicant)
Out[26]: pandas.core.series.Series
Run Code Online (Sandbox Code Playgroud)

我需要展平该系列并将列名称转换为'Type', 'Applicant.Name', 'Applicant.Age', 'Decision',的数据框'Action'

ank*_*_91 5

没有(如果性能很重要)的解决方案apply是:

data=(pd.DataFrame(data.pop('Applicant').str[0].values.tolist())
                              .add_prefix('Applicant.').join(data))
Run Code Online (Sandbox Code Playgroud)
  Applicant.Age Applicant.Name  Type Decision  Action
0            24            Ben  TRAN        T    Good
1            32            Zoe   LMI        U  Better
2            28           Jack   ARN        V    Best
Run Code Online (Sandbox Code Playgroud)