首页 > 解决方案 > 以非数字类型 pandas 为中心

问题描述

我有一个数据框。

date           name     start_time_bin      skill set
2019-10-25     Joe       10am- 12am          C,Python
2019-10-25     Mark      10am- 12am          Java,Python
2019-10-25     Sara      12pm- 2pm          Java,Python
2019-10-26     Jim       12pm- 2pm           C,Python, scala
2019-10-26     Bob       >=2pm < 4pm         C,SQL

我正在尝试使用枢轴将此数据框转换为类似的东西。

Audit_date    10am- 12am   12pm- 2pm      >=2pm < 4pm  
2019-10-25       Joe          Sara            Nan
2019-10-25       Mark          Nan            Nan
2019-10-26       Nan           Jim            Bob

我尝试使用以下内容:

piv = new.pivot_table(index=['Audit_Date'], columns='start_time_bin', values='name')

我收到错误No numeric types to aggregate

有没有其他方法可以做到这一点?

标签: pythonpandas

解决方案


如果从不重复Audit_Datestart_time_bin则可以使用聚合first

piv = new.pivot_table(index='Audit_Date', 
                      columns='start_time_bin', 
                      values='name', 
                      aggfunc='first')

或者如果可能重复,则按以下方式聚合join

piv = new.pivot_table(index='Audit_Date', 
                     columns='start_time_bin', 
                     values='name', 
                     aggfunc=', '.join)

推荐阅读