gpt4 book ai didi

python - Pandas 聚集在所有列上

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:23 25 4
gpt4 key购买 nike

Python 3 和 Pandas 0.23

我有一个包含 2000 列的 DataFrame,需要根据每列的一些汇总统计数据进行一些变量消除。

测试数据:

data = pd.DataFrame({
'a': np.random.normal(0, 2, 10), \
'b': np.random.normal(0, 2, 10), \
'c': np.random.normal(0, 2, 10) \
})

作品:

data.aggregate(['min','max', 'nunique']).transpose()

有效,但如何命名 lambda 列?

data.aggregate(['min','max', 'nunique', (lambda x: np.unique(x).size / x.size)]).transpose()

显然你应该能够给聚合函数一个字典,但我无法让它工作,除了命名所有要计算统计信息的列,这是 2000 列。

我不希望生成的 DataFrame 格式为每个 min、max、nunqiue 的一列和原始 data DataFrame 中每一列的一行

最佳答案

你可以 rename <lambda>聚合后的列,但是如果您有多个 lambda 函数,那么它们都具有相同的名称,这就是一个问题。相反,只需使用您想要的名称定义您的函数,然后在 agg 中调用它们.

import numpy as np

def named_f1(x):
return np.unique(x).size / x.size

data.aggregate(['min','max', 'nunique', named_f1]).T

输出:

        min       max  nunique  named_f1
a -4.152149 4.095229 10.0 1.0
b -3.436940 3.266958 10.0 1.0
c -1.703651 3.198662 10.0 1.0

关于python - Pandas 聚集在所有列上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51268209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com