python - Pandas GroupBy - 获取名称为“count”的列
问题描述
我尝试将 DataFrame 中每个类别的计数计算为:
data = {'col_1': ['a', 'b', 'c', 'd','c'],'col_2': [3, 2, 1, 0, 4],'col3':[99,88,77,66,55]}
df = pd.DataFrame.from_dict(data)
print(df.groupby(['col_1']).count())
Output:
col_2 col3
col_1
a 1 1
b 1 1
c 2 2
d 1 1
为什么有两列 "col_2" 和 "col_3" 并且只有一列名为 "count" ?
希望的输出是:
col_1 count
a 1
b 1
c 2
d 1
解决方案
你可以做:
print(df.groupby(['col_1'],as_index=False).agg(count=('col_2','count')))
或者
print(df.groupby(['col_1'],as_index=False).size().rename(columns={'size':'count'}))
输出:
col_1 count
a 1
b 1
c 2
d 1
推荐阅读
- java - 使用 PDFBox 2.0.17 签署具有多个签名字段的 PDF
- google-chrome - 使用 Chrome 进行 Google 搜索会触发对该网站的调用
- python - 如何向图像框架添加一些文本,然后从框架中获取文本
- python - 如何将熊猫数据框转换为多个 NamedTuple 的列表
- sql - QUOTENAME 等效函数 bigquery
- c - 用于缓存模拟器的 malloc 两个结构
- .net - 您如何保护您的 JWT 对称安全密钥?
- java - Lombok EqualsAndHashCode 按内部对象字段
- elixir - Elixir/Phoenix - 控制器中的 HTML 表单解析
- unit-testing - React-Native Unittest 在keyboardListener 上删除