【问题标题】:Convert a dataframe column into a list of object将数据框列转换为对象列表
【发布时间】:2019-09-23 00:16:00
【问题描述】:

我正在使用 pandas 读取包含 phone_number 字段(字符串)的 CSV,但是,我需要将此字段转换为以下 JSON 格式 [{'phone_number':'+01 373643222'}] 并将其放在名为 phone_numbers 的新列名下,我该怎么做?

在线搜索,但我发现的示例是使用 to_json() 将所有列转换为 JSON,这显然无法解决我的问题。

下面是一个例子

import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'], 
                   'phone_number': ['+1 569-483-2388', '+1 555-555-1212', '+1 432-867-5309']})

【问题讨论】:

  • 请为您的问题创建一个示例,检查How to make good reproducible pandas examples
  • tolist() 应该可以完成这项工作。在这里查看答案:stackoverflow.com/questions/22341271/…
  • [df["phone_number"].to_json()] 会在列表中将 Series 转换为 json
  • df['phone_numbers'] = [df["phone_number"].to_json()] 不起作用
  • 您需要:df['phone_numbers']=[f'phone_number:{i}' for i in df['phone_number']] 还是df['phone_numbers']=[f'[phone_number:{i}]' for i in df['phone_number']]

标签: python pandas


【解决方案1】:

像这样使用地图功能

df["phone_numbers"] = df["phone_number"].map(lambda x: [{"phone_number": x}] )

display(df)

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 2018-12-19
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 2021-07-27
    • 2020-04-17
    相关资源
    最近更新 更多