gpt4 book ai didi

python - Pandas 数据框转换

转载 作者:行者123 更新时间:2023-11-28 20:57:28 25 4
gpt4 key购买 nike

考虑一个如下所示的数据框:

             A        B        C
0 2018-10-13 100 50
1 2018-10-13 200 25
2 2018-10-13 300 10
3 2018-10-13 400 5
4 2018-10-13 500 0
5 2018-10-14 100 100
6 2018-10-14 200 50
7 2018-10-14 300 25
8 2018-10-14 400 10
9 2018-10-14 500 5
10 2018-10-15 100 150
11 2018-10-15 200 100
12 2018-10-15 300 50
13 2018-10-15 400 25
14 2018-10-15 500 10

这里我要执行的转换是:

  1. GroupBy 列 A
  2. 然后 GroupBy B 列分成 3 个区间([0,100] 说 intval-1,[101,200] 说 intval-2,[201,end] 说 intval-3]. 可以是n个区间来泛化。
  3. 对 C 列执行求和聚合

所以我的转换/透视数据框应该是这样的

             A  intval-1  intval-2  intval-3
0 2018-10-13 50 25 15
1 2018-10-14 100 50 40
2 2018-10-13 150 100 85

实现此目的的简单方法将大有帮助。

谢谢。

最佳答案

您可以 cut , 然后 pivot_table :

bin_lst = [0, 100, 200, np.inf]

cut_b = pd.cut(df['B'], bins=bin_lst,
labels=[f'intval-{i}' for i in range(1, len(bin_lst))])

res = df.assign(B=cut_b)\
.pivot_table(index='A', columns='B', values='C', aggfunc='sum')

print(res)

B intval-1 intval-2 intval-3
A
2018-10-13 50 25 15
2018-10-14 100 50 40
2018-10-15 150 100 85

关于python - Pandas 数据框转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53068203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com