这是一个如此简单的问题,这就是为什么我无法做到这一点而让我烦恼不已。
我有一系列列表,我已将其转换为扁平列表:
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
如果您想按分类变量进行分组并计算每个组的聚合统计数据,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
由于这个网站非常有帮助,我明白了。
测试 = pd.DataFrame(列表) 频率 = test[0].value_counts()
pd.Series([2, 4, 6, 7, 2, 6, 2]).value_counts()