【问题标题】:Store rows of DataFrame with certain value in list在列表中存储具有特定值的 DataFrame 行
【发布时间】:2023-01-19 04:30:23
【问题描述】:

我有一个像这样的数据框:

id country city amount duplicated
1 France Paris 200 1
2 France Paris 200 1
3 France Lyon 50 2
4 France Lyon 50 2
5 France Lyon 50 2

我想重复存储每个不同值的列表,例如:

列表 1

[
    {
        "id": 1,
        "country": "France",
        "city": "Paris",
        "amount": 200,
    },
    {
        "id": 2,
        "country": "France",
        "city": "Paris",
        "amount": 200,
    }
  ]

清单 2

[
    {
        "id": 3,
        "country": "France",
        "city": "Lyon",
        "amount": 50,
    },
    {
        "id": 4,
        "country": "France",
        "city": "Lyon",
        "amount": 50,
    },
    {
        "id": 5,
        "country": "France",
        "city": "Lyon",
        "amount": 50,
    }
  ]

我尝试过滤重复项

df[df.duplicated(['country','city','amount', 'duplicated'], keep = False)]

但它只返回相同的 df。

【问题讨论】:

  • 您的实际数据是否像示例数据中那样有 duplicated 列?

标签: python python-3.x pandas list dataframe


【解决方案1】:

如果我理解正确的话,你可以使用DataFrame.to_dict('records') 来制作你的列表:

list_1 = df[df['duplicated'] == 1].to_dict('records')
list_1 = df[df['duplicated'] == 2].to_dict('records')

或者对于列中任意数量的值,您可以创建一个字典:

result = {}
for value in df['duplicated'].unique():
    result[value] = df[df['duplicated'] == value].to_dict('records')

【讨论】:

  • 我试过了,这行得通,谢谢。仍然不是完整的解决方案,因为有大量重复值,所以我想我需要遍历它们。谢谢!
猜你喜欢
  • 2016-10-04
  • 1970-01-01
  • 2022-11-20
  • 2023-03-21
  • 2017-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
相关资源
最近更新 更多