gpt4 book ai didi

pandas - 列排序统计

转载 作者:行者123 更新时间:2023-12-02 06:59:01 25 4
gpt4 key购买 nike

假设我有一个包含 N 列的数据框(例如 N=3)。每行代表一个样本:

                A        B        C                                
sample_1 64 46 69
sample_2 55 33 40
sample_3 67 51 78
sample_4 97 32 62
sample_5 50 36 39

我想知道 ABC 列的最常见的顺序是什么跨行。

在上面的例子中,可以手动对每一行进行排序:

sample_1: [B, A, C]
sample_2: [B, C, A]
sample_3: [B, A, C]
sample_4: [B, C, A]
sample_5: [B, C, A]

然后发现最常见的排序是[B, C, A],而[B, A, C]是第二常见的。

Pandas、scipy 或 statsmodels 中是否有任何有助于此分析的函数?例如,如果我想了解每个订单发生的频率怎么办?

最佳答案

也许:

>>> from collections import Counter
>>> f = lambda ts: df.columns[np.argsort(ts).values]
>>> Counter(map(tuple, df.apply(f, axis=1).values))
Counter({('B', 'C', 'A'): 3, ('B', 'A', 'C'): 2})

所以最常见的顺序是:

>>> _.most_common(1)
[(('B', 'C', 'A'), 3)]

或者:

>>> f = lambda ts: tuple(df.columns[np.argsort(ts)])
>>> df.apply(f, axis=1, raw=True).value_counts()
(B, C, A) 3
(B, A, C) 2
dtype: int64

关于pandas - 列排序统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437773/

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