Python 如何将字典类型的列拆分为两个不同类型的列?
我有一个数据框,有两列(加上索引),像这样,它有大约14000行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
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最好只做第一列