我有一个 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'
。
没有(如果性能很重要)的解决方案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)