【发布时间】:2021-05-23 21:38:20
【问题描述】:
我正在尝试将一个相对简单的 DF(仅具有非数字值)从长变宽,但似乎无法使代码正常工作!
我有一个打击格式的表格(df1):
| var_1 | var_2 |
|---|---|
| A1 | Jan |
| B1 | Jan |
| C3 | Jan |
| A2 | Feb |
| B2 | Feb |
| C3 | Mar |
我正在尝试将 (df2) 输出为以下格式:
| Jan | Feb | Mart |
|---|---|---|
| A1 | A2 | C3 |
| B1 | B2 | |
| C3 |
我检查了谷歌和其他几个链接,包括下面的线程:-)
Pivoting a Pandas Dataframe containing strings - 'No numeric types to aggregate' error
我最接近解决方案的是代码
df2 = df1.pivot_table(values='va_1', columns='var_2', aggfunc=lambda x: ', '.join(x))
但是,我得到的输出不是我想要的(如下):
| Jan | Feb | Mart |
|---|---|---|
| A1, B1, C3 | A2, B2 | C3 |
感谢所有可以让我从 df1 到 df2 的帮助!
谢谢! :-)
纳德
【问题讨论】:
-
省略
aggfunc参数,它将列表组合成逗号分隔的字符串 -
感谢您的评论 - 但是,如果没有 aggfunc,我会收到以下错误:raise DataError("No numeric types to aggregate") pandas.core.base.DataError: No numeric types to aggregate
标签: python pandas dataframe pivot-table