pandas 如何将字符串列拆分为多列?[duplicate]

uelo1irk  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(146)
    • 此问题在此处已有答案**:

(13个答案)
23分钟前就关门了。
我有一个包含一个字符串列的数据框,我希望用**",""分隔将其拆分为多个列。我希望将该列命名为与":"**"之前列中的字符串相同的名称。
该列如下所示:

0  {"ID":"AP001","Name":"Anderson","Age":"23"}
1  {"ID":"AP002","Name":"Jasmine","Age":"36"} 
2  {"ID":"AP003","Name":"Zack","Age":"28"}
3  {"ID":"AP004","Name":"Chole","Age":"39"}

我想拆分成这样:
| 识别号|姓名|年龄|
| - ------|- ------|- ------|
| AP001|安德森|二十三|
| AP002|茉莉|三十六|
| AP003|扎克|二十八|
| AP004|胆|三十九|
我试过按**','拆分它,但我不知道如何删除':'**之前的字符串并将其作为列名。

data1 = data['demographic'].str.split(',',expand=True)

这是我拆分后得到的:
| 无|1个|第二章|
| - ------|- ------|- ------|
| "编号":"AP001"|"姓名":"安德森"|“年龄”:“23岁”|
| "编号":"AP002"|【名称】:【茉莉】|“年龄”:“36岁”|
| "编号":"AP003"|"姓名":"扎克"|“年龄”:“二十八岁”|
| "编号":"AP004"|"名称":"胆固醇"|“年龄”:“39岁”|
有人知道怎么做吗?

z9smfwbn

z9smfwbn1#

您可以使用ast.literal_eval

import ast

data1 = pd.json_normalize(data['demographic'].apply(ast.literal_eval))
print(data1)

# Output
      ID      Name Age
0  AP001  Anderson  23
1  AP002   Jasmine  36
2  AP003      Zack  28
3  AP004     Chole  39

相关问题