如何将字典类型的列拆分为两个不同类型的列?

2024-10-01 00:22:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,有两列(加上索引),像这样,它有大约14000行

Employee                           | RecordID
{'Id': 185, 'Title': 'Full Name'}  |    9

我想像这样拆分这些列:

Id   |    Title      | RecordID
185  |  'Full Name'  |    9

我尝试使用此解决方案:

df2 = pd.DataFrame(data_df["Employee"].values.tolist(), index=data_df.index) <- error
data_df = pd.concat([data_df, df2], axis = 1).drop(column, axis = 1)

但是它在df2行中给出了这个错误

 *** AttributeError: 'float' object has no attribute 'keys'

我有两种理论:一种是因为我在员工字典中有不同的列类型,另一种是:有3条记录的员工id为空,如下所示:

Employee                           | RecordID
nan                                |    7051

我需要保留这3条没有员工记录的记录,并显示它们的record Id,最后data_df显示员工id和员工姓名的空列

总而言之:

输入

Employee                           | RecordID
{'Id': 185, 'Title': 'Full Name'}  |    9
nan                                |    7051

预期产量

Id   |    Title      | RecordID
185  |  'Full Name'  |    9
nan  |  nan          |    7051

我用data_df["Employee"].apply(pd.Series)使它工作起来,但速度非常慢

是否有一种方法而不是使用pd.series来拆分字典列,其中该字典具有不同的列类型和nan值,从而将列分隔到父数据帧中

谢谢


Tags: 数据nameiddfdata字典title记录
1条回答
网友
1楼 · 发布于 2024-10-01 00:22:15

你能行

data_df1= data_df.dropna()

df2 = pd.DataFrame(data_df1["Employee"].values.tolist(), index= data_df1.index)

data_df=data_df.join(df2,how='left')

相关问题 更多 >