【问题标题】:how to convert pipe delimited string into list python for column in pandas dataframe如何将管道分隔字符串转换为熊猫数据框中列的python列表
【发布时间】:2021-11-27 13:33:22
【问题描述】:

我需要将 csv 文件转换为 json。在 csv 文件中,电子邮件由字符串中的管道(|)分隔。需要转换成列表。我能够转换成列表,但只有 1 封电子邮件输出。

以 csf 格式输入数据

first_name, last_name, email
"ABC","DEF","abc@gmail.com|def@gmail.com"
"CBA","FED","cba@gmail.com|fed@gmail.com"

json格式的预期输出数据

[
    {
        "first_name" : "ABC",
        "last_name" : "DEF",
        "email" : ["abc@gmail","def@gmail"]
    }
    {
        "first_name" : "CBA",
        "last_name" : "DEF",
        "email" : ["abc@gmail","def@gmail"]
    }
]

获取输出

[
    {
        "first_name" : "ABC",
        "last_name" : "DEF",
        "email" : ["abc@gmail"]
    }
    {
        "first_name" : "CBA",
        "last_name" : "DEF",
        "email" : ["abc@gmail"]
    }
]

代码尝试

df = pd.read_csv("filename")
df.Email = df.Email.str.split('|')
df1 = df.to_json("filename", orient='records')

【问题讨论】:

  • 我用 pandas v1.0.5 试过了,你的代码按预期工作。你确定你已经包含了所有相关的代码吗?你检查过你的数据吗?
  • df.to_json() 需要将最终的数据帧写入json文件。
  • 如果你有其他方法请告诉我
  • 您的错误解决了吗?
  • 它适用于我的相同代码。刚刚改了版本

标签: python json list


【解决方案1】:

我使用的是 pandas v1.0.5,它按预期工作。

在您的 csv 数据示例中,第一行在逗号后有空格,但在尝试访问 df.email 时只会引发错误。

结论:错误一定在其他地方。要么您没有与我们共享所有相关代码,数据实际上不同,要么它确实正确地完成了工作并且没有错误,但数据就是这样。

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 2015-11-20
    • 2020-04-04
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    相关资源
    最近更新 更多