繁体   English   中英

使用数据透视表时将分类数据与数字数据结合

[英]Combining categorical data with numeric data when using pivot_table

我必须遵循以下数据(300万行):

user_id | datetime   | type
1       | 2015-01-01 | q
1       | 2015-01-01 | d
1       | 2015-01-02 | d
2       | 2015-01-01 | d
2       | 2015-01-02 | q
2       | 2015-01-02 | q

我想获得以下数据框:

user_id | 2015-01-01 | 2015-01-02 
1       | q:1, d:1   | d:1 
2       | d:1        | q:2 

我知道如果没有type列,我可以使用pivot_table 但是,我也需要考虑一下。 我想知道是否有人对此问题有任何优雅的解决方案?

PS输出表单元格看起来不太一样。 作为替代解决方案,可以丢弃(d和q的)计数。

to_json
这使您真正接近。 单元格值是字符串。

df.groupby(
    ['user_id', 'datetime']
).type.apply(lambda x: pd.value_counts(x).to_json()).unstack()

在此处输入图片说明

MultiIndex
这可能更有意义

df.groupby(
    ['user_id', 'datetime']).type.apply(pd.value_counts).unstack(['datetime', -1])

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM