【问题标题】:How to split JSON column如何拆分 JSON 列
【发布时间】:2020-05-15 09:17:10
【问题描述】:

我有一个带有 JSON 列的数据框,其中包含此结构中的长文本:

[['A','B','C'],['A','B','D'],['A','B','E']]

我需要将其拆分为新的三列,内容分别为'C''D''E'。问题是部分数据没有第三个方括号['A','B','E']

你知道该怎么做吗?

【问题讨论】:

  • 添加预期输出
  • 输出应如下所示:imgur.com/jWoxzuS
  • 你能再添加一些数据,包括这个条件“部分数据没有第三个方括号”
  • 其中一些是这样的:[['custom-field2', 'voucher', '凭证编号'], ['custom-field2', 'voucher', 'note']]其中一些是这样的: [['custom-field2', 'voucher', '凭证数量'], ['custom-field2', 'voucher', 'note']],['custom-field2' , '凭证', '语言']]
  • 我想创建 3 个新列并将 NaN 保留在第三列以防缺失值。我是初学者,所以我希望它有意义:)

标签: python json dataframe split


【解决方案1】:

试试这个:

df = pd.DataFrame({'A': [[['A','B','C'],['A','B','D'],['A','B','E']], [['X','Y','Z'],['R','S','T']], [['I','J','K'],['L','M','N'],['O','P','Q']]]})
df = pd.DataFrame(df['A'].apply(lambda x: [lst[2] for lst in x]).tolist())
print(df)

输出:

   0  1     2
0  C  D     E
1  Z  T  None
2  K  N     Q

【讨论】:

  • 非常感谢!我忘了提到我正在创建一个每天从 csv 文件自动生成的脚本,所以我不想手动将列内容放入代码中,但更喜欢自动将代码与已创建的列(如 df [ 'column name'] 或类似的东西。
  • @JanaStará 我没听懂你在说什么
  • 如果有其他方式不需要手动放置 ['A','B','C'],['A','B','D'], ['A','B','E']], [['X','Y','Z'],['R','S','T']], [['I' ,'J','K'],['L','M','N'],['O','P','Q']] 进入代码,但自动计算特定列的内容?
  • @JanaStará 我刚刚创建了它作为示例。如果您已经有一个数据框,那么您可以删除第一行并在第二行更改列名它会起作用。
猜你喜欢
  • 1970-01-01
  • 2023-01-27
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 2023-02-03
相关资源
最近更新 更多