Pandas python 将列表转换为数据帧并计算出现次数

问题描述 投票:0回答:3

这是一个如此简单的问题,这就是为什么我无法做到这一点而让我烦恼不已。

我有一系列列表,我已将其转换为扁平列表:

myList= []
for i in myList['variable'].tolist():
    for j in i:
        myList.append(j)
        
frequency = pd.DataFrame(myList).reset_index().sort_values(0).groupby(0).count()

最后一行让我失望。我不知道为什么,但它返回了该组每个成员的错误计数。

样本输入 =

[2, 4, 6, 7, 2, 6, 2]

预期的DataFrame输出=

var    count
2        3
4        1
6        2
7        1
python pandas list dataframe
3个回答
0
投票

如果您想按分类变量进行分组并计算每个组的聚合统计数据,pandas 可以做到这一点:

df = pd.DataFrame({
        'a': random.choices(range(1,4), k=20),
        'b': np.random.normal(size=20),
    })

df.groupby('a').count()

#     b
# a
# 1   2
# 2   8
# 3  10

df.groupby('a').agg(('count', 'mean', 'std'))

#       b
#   count      mean       std
# a
# 1     2  0.454240  2.218616
# 2     8  0.165295  1.355922
# 3    10 -0.004880  1.225908

参见:groupbycountagg


0
投票

由于这个网站非常有帮助,我明白了。

测试 = pd.DataFrame(列表) 频率 = test[0].value_counts()


0
投票
pd.Series([2, 4, 6, 7, 2, 6, 2]).value_counts()
© www.soinside.com 2019 - 2024. All rights reserved.