gpt4 book ai didi

具有分组依据和条件的 Python Pandas 新数据框列

转载 作者:太空宇宙 更新时间:2023-11-03 15:42:53 24 4
gpt4 key购买 nike

我有一个如下所示的 Pandas 数据框。

player  count1  count2
A 1 1
A 2 1
A 3 1
A 4 2
A 5 2
B 1 1
B 2 2
B 3 2
B 4 2

专栏player包含名称,count1是累加和列 count2包含其他计数。

我现在想创建一个包含 count1 值的新列其中列 count2首先包含值 2 .

因此,结果应该是这样的:

player  count1  count2  new
A 1 1 4
A 2 1 4
A 3 1 4
A 4 2 4
A 5 2 4
B 1 1 2
B 2 2 2
B 3 2 2
B 4 2 2

我试着用 transform 来做, 但我无法弄清楚如何将它与基于 count2 的条件相结合列(以及 count1 列的值)。

没有 groupby它是这样工作的,但我不知道在哪里以及如何添加 groupby :

df['new'] = df.loc[matches['count2'] == 2, 'count1'].min()

最佳答案

使用map系列:

s = df[df['count2'] == 2].drop_duplicates(['player']).set_index('player')['count1']

df['new'] = df['player'].map(s)
print (df)
player count1 count2 new
0 A 1 1 4
1 A 2 1 4
2 A 3 1 4
3 A 4 2 4
4 A 5 2 4
5 B 1 1 2
6 B 2 2 2
7 B 3 2 2
8 B 4 2 2

详细信息:

首先按 boolean indexing 过滤 2 行:

print (df[df['count2'] == 2])
player count1 count2
3 A 4 2
4 A 5 2
6 B 2 2
7 B 3 2
8 B 4 2

然后通过drop_duplicates删除player列的欺骗:

print (df[df['count2'] == 2].drop_duplicates(['player']))
player count1 count2
3 A 4 2
6 B 2 2

关于具有分组依据和条件的 Python Pandas 新数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51580657/

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