将嵌套列拆分为新列

2024-09-09 04:03:59 发布

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

我的数据框有一个嵌套列(people\u info),其中包含如下示例所示的单元格

[{“机构”:“某些机构”,“开始月”:1,“开始月”:2563,“课程”:“任何”,“id”:1111,“组成”:“任何”,“结束月”:12,“结束年”:2556,“状态”:“完成”}]

据我所知,这可以通过使用dictionary/json概念来解决

考虑到这个嵌套单元格的每个键都将是一个具有各自值的新列,我尝试将此列拆分为新列

我尝试了json_normalize,但遇到了以下错误:“AttributeError:'str'对象没有属性'values'”

我试图在dict中转换这些单元格,但我始终无法让python理解“机构”是一个键,“某些机构”是这个创建的dict中的一个值。python似乎将整个单元格理解为一个字符串

你能帮我吗?如果我不清楚,请告诉我。Tks


Tags: 数据infoidjson概念示例dictionary机构
2条回答

也许这有帮助

作为pd进口熊猫

数据=[{“机构”:“某些机构”, “开始月”:1, “startYear”:2563, “课程”:“任何”, “id”:1111, “形成”:“任何”, “月底”:12, “年终”:2556, “状态”:“完成”}]

l=下一个(数据中项目对应的项目)

df=pd.DataFrame(l,索引=[0])

df

在IIUC中,以下各项应起作用:

输入

df = pd.DataFrame({'col1':[1], 'col2':2, 'nested_column':'[{"institution":"some_institution","startMonth":1,"startYear":2563,"course":"any","id":1111,"formation":"any","endMonth":12,"endYear":2556,"status":"complete"}]'})

df

  col1  col2    nested_column
0    1     2    [{"institution":"some_institution","startMonth...

过程

import json
df['nested_column_dict'] = df['nested_column'].transform(lambda x : json.loads(x)[0] if x is not np.nan else {})
df = pd.concat([df, pd.DataFrame.from_records(df['nested_column_dict'])], axis=1)
df.drop('nested_column_dict', axis=1, inplace=True)

输出

 df

 col1   col2    nested_column                                           institution startMonth  startYear   course    id    formation   endMonth    endYear   status
0   1      2    [{"institution":"some_institution","startMonth...   some_institution         1      2563       any  1111          any         12       2556 complete

相关问题 更多 >