【问题标题】:How to create a list based on 2 conditions from a dataframe?如何根据数据框中的 2 个条件创建列表?
【发布时间】:2022-07-18 18:33:25
【问题描述】:

我有这个数据框:

 A       B      C
 1       1     100
 1       1     101
 1       5     102
 2       6     103
 2       6     104
 3      19     105
 3      20     106
...    ...      ...
 n 

从“A”的每个索引AND“B”列的每个索引,我想获得一个列表,该列表基于整个数据帧的“C”值来尊重这两个条件。

例如,我想要这样的输出:

l1 = [100, 101]
l2 = [103,104]
l3 = [105, 106]
etc.

你能帮忙吗?谢谢!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    如果需要A 列使用的每组前 2 行:

    s = df.groupby('A').head(2).groupby('A')['C'].agg(list)
    
    #alternative solution
    #s = df.groupby('A')['C'].agg(lambda x: list(x.iloc[:2]))
    print (s)
    A
    1    [100, 101]
    2    [103, 104]
    3    [105, 106]
    Name: C, dtype: object
    
    
    d = df.groupby('A').head(2).groupby('A')['C'].agg(list).to_dict()
    print (d)
    {1: [100, 101], 2: [103, 104], 3: [105, 106]}
    
    print (d[1])
    [100, 101]
    

    【讨论】:

      猜你喜欢
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2021-11-04
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多