相关疑难解决方法(0)

Pandas groupby并制作一套物品

我正在使用pandas groupby并希望应用该功能从组中的项目创建一个集合.

以下不起作用:

df = df.groupby('col1')['col2'].agg({'size': len, 'set': set})
Run Code Online (Sandbox Code Playgroud)

但以下工作:

def to_set(x):
    return set(x)

df = df.groupby('col1')['col2'].agg({'size': len, 'set': to_set})
Run Code Online (Sandbox Code Playgroud)

在我的理解中,这两个表达式是相似的,第一个不起作用的原因是什么?

python pandas

8
推荐指数
3
解决办法
5621
查看次数

为什么df.apply(元组)工作但不是df.apply(list)?

这是一个数据帧:

    A  B  C
0   6  2 -5
1   2  5  2
2  10  3  1
3  -5  2  8
4   3  6  2
Run Code Online (Sandbox Code Playgroud)

我可以检索一个列,它基本上是原始列的元组df使用df.apply:

out = df.apply(tuple, 1)
print(out)

0    (6, 2, -5)
1     (2, 5, 2)
2    (10, 3, 1)
3    (-5, 2, 8)
4     (3, 6, 2)
dtype: object
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要一个值列表而不是它们的元组,我不能这样做,因为它没有给我我期望的东西:

out = df.apply(list, 1)
print(out)

    A  B  C
0   6  2 -5
1   2  5  2
2  10  3  1
3  -5  2 …
Run Code Online (Sandbox Code Playgroud)

python list apply dataframe pandas

8
推荐指数
1
解决办法
517
查看次数

Pandas groupby - 一组不同的值

我有这个数据框

x = pd.DataFrame.from_dict({'cat1':['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'], 'cat2':['X', 'X', 'Y', 'Y', 'Y', 'Y', 'Z', 'Z']})

  cat1 cat2
0    A    X
1    A    X
2    A    Y
3    B    Y
4    B    Y
5    C    Y
6    C    Z
7    C    Z
Run Code Online (Sandbox Code Playgroud)

我想分组cat1,然后聚合cat2为不同值的集合,例如

  cat1 cat2
0    A    (X, Y)
1    B    (Y,)
2    C    (Y, Z)
Run Code Online (Sandbox Code Playgroud)

这是具有更多列的更大数据框的一部分,每个列都有自己的聚合函数,那么如何将此功能传递给聚合字典?

python dataframe pandas pandas-groupby

4
推荐指数
1
解决办法
3581
查看次数

标签 统计

pandas ×3

python ×3

dataframe ×2

apply ×1

list ×1

pandas-groupby ×1