python - Series.groupby(column) 等效于 DataFrame.groupby(column) 的语法是什么?
问题描述
我正在尝试对一个系列执行 groupby,按值分组。例如计数()。认为:
ser = pd.Series({'a': 'aa', 'b': 'bb', 'c': 'ff', 'd': 'ff'})
ser.name= 'foo'
ser.index.name= 'idx'
所以ser
是:
idx
a aa
b bb
c ff
d ff
Name: foo, dtype: object
我可以做:
>collections.Counter(ser)
Counter({'aa': 1, 'bb': 1, 'ff': 2})
或者:
>print(pd.DataFrame(ser).reset_index().groupby('foo').count())
idx
foo
aa 1
bb 1
ff 2
我的问题是我可以/我如何只使用 做同样的事情Series.groupby(?????).count()
?
编辑:谢谢你们俩的回答,今天要学习两个新东西:)+1 !我将接受@jezrael 的答案,因为它更准确,而且它允许我解决我简化以解决问题的更复杂的问题(除了计算它们之外,还获取所有实例的列表):
>ser.groupby(ser).apply(lambda df:set(df.index))
foo
aa {a}
bb {b}
ff {c, d}
Name: foo, dtype: object
解决方案
groupby
IIUC,当你处理 a 时,没有什么可以应用的series
,所以你可以计算它的值。
这行吗?
ser.value_counts()
ser.value_counts()
ff 2
aa 1
bb 1
推荐阅读
- c# - 如何访问作为列表的类元素
在 C# 中? - node.js - 如何使用私钥和公钥创建证书并使用 NodeJs 存储在 Windows 商店中?
- c# - 没有在 Model Binder Provider 中注入我的服务
- java - Java POM 类中的 Selenium WebDriver NullPointer 异常
- linux - 如何在多台机器上使用相同的 ssh 密钥?
- java - PolylineOptions 不能为空且不出现路线
- usb - USB 设备控制器驱动程序规范
- spring - Spring Data JPA ManyToOne 查询 null
- c++ - 将所有 *.txt 文件合并到一个文本文件中,该文件的名称由用户使用 C++ 指定
- java - 发送邮件时无法向 SMTP 主机发送命令