我现在的情况是,我有一个像这样的数据帧
id tp dt amt
0 1 CR 2017 94678.0
1 1 CR 2018 13508.0
2 1 DR 2017 78671.0
3 1 DR 2018 13797.0
4 2 CR 2017 111417.0
5 2 CR 2018 21479.0
6 2 DR 2017 95266.0
7 2 DR 2018 1864.0
我试图实现的是将两个列的值tp和dt组合起来,并将其用作amt的列名,以潜在地除去具有相同id的多个行
id CR2017 CR2018 DR2017 DR2018
0 1 94678.0 13508.0 78671.0 13797.0
1 2 111417.0 21479.0 95266.0 1864.0
我想知道这是否可能?我已经玩了一个小时重置索引,设置索引和透视表,但仍然没有运气 谢谢你的帮助
添加一些解释。 首先创建一个列,将dt和tp中的值连接起来。 然后删除那些单独的列,因为您不需要它们。 在id和tpdt上执行groupby,它将对tp和dt的唯一对的amt值求和。 Post,您可以通过tpdt对其进行透视,使其成为列标题。 你甚至可以为同样的问题探索unstack函数。你知道吗
将^{} 用于连接列,将^{} 用于重塑:
或创建新列:
但如果得到:
这意味着有重复的
id
具有如下joine对:解决方案是由^{} +聚合函数,如} :
mean
、sum
和^{或^{} 默认
aggfunc='mean'
:一种方法是将all-in-One与:pivot_table与默认值
aggfunc
numpy.mean
与reset_index和rename_axis一起使用相关问题 更多 >
编程相关推荐