python - 计算组合列的唯一值,并将它们放入数据框中
问题描述
我正在尝试计算组合列的唯一值,并将它们放入数据框中,我有两列。一列称为“市政”,另一列称为“日期”。市镇有 27 个不同的名称,而日期每个市镇有 151 个日期,总共 4,077 行。我可以将这两个放在一个数据框中,但我无法得到计数。IE
days1 = (df['Municipality'])
days = days1[5247:9324].reset_index(drop=True)
ddate1 = (df['Date'])
ddate = ddate1[5247:9324].reset_index(drop=True)
frames = [days, ddate]
result = pd.concat(frames, axis = 1)
result
Municipality Date
0 Alta Floresta D'Oeste 2020-03-27
1 Alta Floresta D'Oeste 2020-03-28
2 Alta Floresta D'Oeste 2020-03-29
3 Alta Floresta D'Oeste 2020-03-30
4 Alta Floresta D'Oeste 2020-03-31
... ... ...
4072 Alto Paraíso 2020-08-20
4073 Alto Paraíso 2020-08-21
4074 Alto Paraíso 2020-08-22
4075 Alto Paraíso 2020-08-23
4076 Alto Paraíso 2020-08-24
4077 rows × 2 columns
目标是拥有每个自治市 (27) 并计算每个自治市的日期,每个自治市应为 151。对此很陌生,所以感谢您的帮助。
解决方案
我有一种感觉,你正在寻找groupby.transform
。这样,您将添加一个列来计算每个市镇的日期。
import pandas as pd
result['date_count'] = result.groupby('Municipality')['Date'].transform('count')
result
Municipality Date date_count
0 Alta Floresta D'Oeste 2020-03-27 5
1 Alta Floresta D'Oeste 2020-03-28 5
2 Alta Floresta D'Oeste 2020-03-29 5
3 Alta Floresta D'Oeste 2020-03-30 5
4 Alta Floresta D'Oeste 2020-03-31 5
5 Alto Paraíso 2020-08-20 5
6 Alto Paraíso 2020-08-21 5
7 Alto Paraíso 2020-08-22 5
8 Alto Paraíso 2020-08-23 5
9 Alto Paraíso 2020-08-24 5
在您自己的数据集中,“date_count”列应显示为 151。您可以在groupby.transform
此处进一步准备好。
推荐阅读
- c++ - 引用或默认函数的非类型模板参数?
- python - 如何为子矩阵创建for循环并打印子矩阵
- java - @OneTOOne 映射不保存 MySQL。JpaRepository
- amazon-web-services - 发生错误 (AuthFailure) AWS 无法验证提供的访问凭证:来自 lambda 函数的 ClientError
- javascript - 如何使用 React-native 访问 Django 本地服务器数据?
- javascript - 当浏览器不存在时,puppeteer 被重定向
- python - 为什么我会收到此错误 AttributeError: 'str' object has no attribute 'get' where get function is on a dictionary?
- java - 通过 Java 客户端发送 POST 请求的 unicode 数据会导致什么结果?
- apache-spark - 如何在 7 天内刷新一次运行结构化流式 Spark 应用程序的 kerberos 票证?
- java - 解析函数无法解析字符串并在 Java 中抛出错误