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

Python 如何将字典类型的列拆分为两个不同类型的列?,python,pandas,dataframe,dictionary,Python,Pandas,Dataframe,Dictionary,我有一个数据框,有两列(加上索引),像这样,它有大约14000行 Employee | RecordID {'Id': 185, 'Title': 'Full Name'} | 9 我想像这样拆分这些列: Id | Title | RecordID 185 | 'Full Name' | 9 Employee | RecordID nan

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

Employee                           | RecordID
{'Id': 185, 'Title': 'Full Name'}  |    9
我想像这样拆分这些列:

Id   |    Title      | RecordID
185  |  'Full Name'  |    9
Employee                           | RecordID
nan                                |    7051
我尝试使用此解决方案:

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)
我有两种理论:一种是因为我在员工字典中有不同的列类型,另一种是:有3条记录的员工id为空,如下所示:

Id   |    Title      | RecordID
185  |  'Full Name'  |    9
Employee                           | RecordID
nan                                |    7051
我需要保留这3条没有员工记录的记录,并显示其
记录Id
,在最后的
数据中显示员工Id和员工姓名的空列

总而言之:

输入

预期产量

Id   |    Title      | RecordID
185  |  'Full Name'  |    9
nan  |  nan          |    7051
我使用
data\u df[“Employee”].apply(pd.Series)
实现了这一功能,但速度非常慢

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

谢谢,

你能行

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')
你能行

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')

非常感谢!啊,我明白了,创建dataframe,过滤掉空值,将列转换为dataframe,然后左连接。我没有意识到数据帧可以做到这一点。我明天会核实,如果一切顺利,请将此标记为答案。在您的答案之后,我在
dropna
上查找文档,您是否建议仅在第一列使用它
df.dropna(subset=['Employee'])
@JoseR最好只做第一列就这么多!啊,我明白了,创建dataframe,过滤掉空值,将列转换为dataframe,然后左连接。我没有意识到数据帧可以做到这一点。我明天会核实,如果一切顺利,请将此标记为答案。在您的答案之后,我在
dropna
上查找文档,您是否建议仅在第一列使用它
df.dropna(子集=['Employee'])
@JoseR最好只做第一列