gpt4 book ai didi

python - 在 python pandas 中获取剩余聚合列作为两列分组的列表

转载 作者:行者123 更新时间:2023-12-01 02:17:17 25 4
gpt4 key购买 nike

我总共有 5 列,我想对两列进行分组,并希望获取列表中的其他列。我正在使用 python Pandas 。我在这里举一个例子

   BN            PN        tempC tempF humidity
0 7363311 1 28 82 73
1 7363311 2 27 81 73
2 7363311 3 27 81 73
3 7363311 4 27 81 73
4 7363311 4 27 81 73
5 7363311 5 27 81 73
8 7363311 7 27 81 73
9 7363311 7 27 81 74

输出应该如下所示

  BN                  PN      tempC     tempF   humidity
7363311 1 28 82 73
2 27 81 73
3 27 81 73
4 [27,27] [81,81] [73,73]
5 27 81 73
7 [27,27] [81,81] [73,74]

我正在使用下面的代码对其进行分组

df.groupby(['BN','PN'])

最佳答案

首先需要聚合tuple,然后转换为list:

df = df.groupby(['BN','PN']).agg(tuple).applymap(list)
print (df)
tempC tempF humidity
BN PN
7363311 1 [28] [82] [73]
2 [27] [81] [73]
3 [27] [81] [73]
4 [27, 27] [81, 81] [73, 73]
5 [27] [81] [73]
7 [27, 27] [81, 81] [73, 74]

如果想要将列表标量组合,请添加if-else语句:

df = df.groupby(['BN','PN']).agg(tuple).applymap(lambda x: x[0] if len(x) == 1 else list(x))
print (df)
tempC tempF humidity
BN PN
7363311 1 28 82 73
2 27 81 73
3 27 81 73
4 [27, 27] [81, 81] [73, 73]
5 27 81 73
7 [27, 27] [81, 81] [73, 74]

关于python - 在 python pandas 中获取剩余聚合列作为两列分组的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48283740/

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