我一直在网上搜索在使用 python/pandas 从原始数据帧中获取仅包含唯一行及其基本统计信息(出现次数、平均值等)的数据帧时是否有一种简单的方法。
到目前为止,我的努力只完成了一半:我找到了如何使用
data.drop_duplicates
但是我不太确定我应该如何轻松检索我想要的所有统计数据。我可以在 groupedby 上做一个 for 循环,但这会很慢。
我想到的另一种方法是使用 groupby 然后使用 describe,例如,
data.groupby(allColumns)[columnImInterestedInForStats].describe()
但事实证明,对于 allColumns 中的 19 列,这仅返回一行,根本没有统计信息。令人惊讶的是,如果我只为 allColumns 选择一个小子集,我实际上确实得到了该子集及其所有统计信息的每个独特组合。我的期望是,如果我填写 groupby() 中的所有 19 列,我会得到所有唯一组?
数据示例:
df = pd.DataFrame([[1.1, 1.1, 1.1, 2.6, 2.5, 3.4,2.6,2.6,3.4,3.4,2.6,1.1,1.1,3.3], list('AAABBBBABCBDDD'), ['1','3','3','2','4','2','5','3','6','3','5','1','1','1']]).T
df.columns = ['col1','col2','col3']
期望的结果:
col2 col3 mean count and so on
A 1 1.1 1
3 4.8 3
B 2 6.0 2
4 2.5 1
5 5.2 2
6 3.4 1
C 3 3.4 1
D 1 5.5 3
进入数据框。
我确定它一定是我想念的非常微不足道的东西,但我找不到正确的答案。提前致谢。