【问题标题】:How to subset pandas dataframe by unique values in a column [duplicate]如何通过列中的唯一值对熊猫数据框进行子集化[重复]
【发布时间】:2019-07-03 07:49:22
【问题描述】:

想要找到一种更简单的方法来对数据框进行子集化并将其创建为新数据框

A011 = DF[DF['id']=="A011"]
A012 = DF[DF['id']=="A012"]
A013 = DF[DF['id']=="A013"]
A014 = DF[DF['id']=="A014"]

这可行,但效率低下。我实际上有 162 个唯一值。

DF = pd.DataFrame({'id': ["A011", "A012", "A012", "A012","A011", "A012", "A012", "A012"],\
'value': [1, 2, 3, 4, 1, 2, 3, 4]})
A011 = DF[DF['id']=="A011"]
A012 = DF[DF['id']=="A012"]
A013 = DF[DF['id']=="A013"]
A014 = DF[DF['id']=="A014"]

期望的输出

    id  value
0   A011    1
4   A011    1

    id  value
1   A012    2
5   A012    2

【问题讨论】:

    标签: python pandas dataframe subset


    【解决方案1】:
    df = pd.DataFrame({'id': ["A011", "A012", "A012", 
    "A012","A011", "A012", "A012", "A012"], 'value': [1, 2, 3, 4, 1, 2, 3, 4]})    
    result = [x.reset_index(drop=True) for _, x in df.groupby(['id'])]
    

    由于您要基于唯一的 id 列创建数据框,我们可以按 id 列对数据框进行分组,该列为每个组返回一个数据框。在创建的数据帧上使用 reset_index 删除原始索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      相关资源
      最近更新 更多