如何使用Pandas实现数据的列转统计?

如何使用pandas实现数据的列转统计?

利用Pandas高效实现数据列转统计

在数据分析中,经常需要对数据进行灵活的重组和统计分析。例如,将包含日期和类型的数据集转换为每日不同类型计数的统计表。本文将演示如何使用Pandas库高效地完成此类操作。

假设我们有一个包含’date’(日期)和’type’(类型)两列的数据框(DataFrame),数据示例如下:

date       type2024-01-01  12024-01-01  22024-01-01  12024-01-02  32024-01-02  22024-01-02  32024-01-02  12024-01-02  12024-01-03  12024-01-03  42024-01-03  22024-01-03  5...

目标是将数据转换为如下格式,显示每种类型在每一天的计数:

date       type1  type2  type3  type4  type52024-01-01  2      1      0      0      02024-01-02  2      1      2      0      02024-01-03  1      1      0      1      1...

我们可以利用Pandas的pd.get_dummies()groupby()函数组合实现这一目标。以下是Python代码:

import pandas as pd# 示例数据data = {    'date': ['2024-01-01', '2024-01-01', '2024-01-01', '2024-01-02', '2024-01-02', '2024-01-02', '2024-01-02', '2024-01-02', '2024-01-03', '2024-01-03', '2024-01-03', '2024-01-03'],    'type': [1, 2, 1, 3, 2, 3, 1, 1, 1, 4, 2, 5]}df = pd.DataFrame(data)# 使用get_dummies()进行one-hot编码df_encoded = pd.get_dummies(df, columns=['type'], prefix='type')# 使用groupby()和sum()进行分组统计result = df_encoded.groupby('date').sum()# 打印结果print(df_encoded)print("-" * 60)print(result)

代码首先使用pd.get_dummies()将’type’列转换为虚拟变量,然后使用groupby('date').sum()对日期进行分组并对每个类型进行求和,最终得到目标统计表。

输出结果类似于:

         date  type_1  type_2  type_3  type_4  type_50  2024-01-01       1       0       0       0       01  2024-01-01       0       1       0       0       02  2024-01-01       1       0       0       0       03  2024-01-02       0       0       1       0       04  2024-01-02       0       1       0       0       05  2024-01-02       0       0       1       0       06  2024-01-02       1       0       0       0       07  2024-01-02       1       0       0       0       08  2024-01-03       1       0       0       0       09  2024-01-03       0       0       0       1       010 2024-01-03       0       1       0       0       011 2024-01-03       0       0       0       0       1------------------------------------------------------------            type_1  type_2  type_3  type_4  type_5date                                           2024-01-01       2       1       0       0       02024-01-02       2       1       2       0       02024-01-03       1       1       0       1       1

通过这个简洁的代码,我们可以轻松地完成Pandas数据列转统计,提高数据分析效率。

以上就是如何使用Pandas实现数据的列转统计?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1359931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 23:11:07
下一篇 2025年12月13日 23:11:17

相关推荐

发表回复

登录后才能评论
关注微信