pandas pivot_tables 不适用于日期数据(没有要聚合的数字类型)

pandas pivot_tables doesn't work with date data (No numeric types to aggregate)

我有以下数据框:

index   id    code    data    date
0      AZ234  B213    apple   2020-09-01 <- duplicate id, code, data
1      AZ234  B213    apple   2022-02-02 <- duplicate id, code, data
2      AZ234  B213    banana  2020-07-01
3      AZ234  B213    orange  2020-05-11
4      AL612  B309    apple   2020-12-05
5      AL612  B309    banana  2020-07-21
6      AL612  B309    orange  2020-09-21

...

我想创建数据透视表 table 以获得以下 table:

id    code    apple         banana        orange
AZ234  B213   2020-09-01    2020-07-01     2020-05-11
AL612  B309   2020-12-05    2020-07-21     2020-09-21
...

我尝试使用 pivot_table (pandas):

pd.pivot_table(df, values='date', index=['id','code'],
                       columns=['data'])

但是我得到这个错误:

DataError: No numeric types to aggregate

我已阅读 但它似乎有点不同,因为我不想更改列,而且当我尝试 set_index 使用代码和 ID ( “ ValueError:索引包含重复条目,无法重塑”)。

我的目标是用日期作为 table 的值创建数据透视表 table。

每个 id, date, data 都有重复项,因此有必要添加一些聚合函数:

如果有日期时间:

df['date'] = pd.to_datetime(df['date'])

df.pivot_table(values='date', index=['id','code'], columns=['data'], aggfunc='first')

df.pivot_table(values='date', index=['id','code'], columns=['data'], aggfunc='max')

如果有字符串:

print (df['date'].dtype)

df.pivot_table(values='date', index=['id','code'], columns=['data'], aggfunc=','.join)