python - 如何合并熊猫中的行以获取无序的一对列?
问题描述
我的数据框中有如下行-
Team 1 Team 2 Winner winner_count
0 Afghanistan Australia Australia 1
19 Australia Afghanistan Australia 1
我想将这两行合并为一个并将winner_count相加,这样-
Team 1 Team 2 Winner winner_count
0 Afghanistan Australia Australia 2
这应该是我的输出。
解决方案
如果您的数据框中有很多行,我会尽量避免通过axis=1
. 您可以从我之前在这里回答的一个非常相似的问题中看到性能影响:
s1 = np.where(df['Team 2'] > df['Team 1'], df['Team 1'], df['Team 2'])
s2 = np.where(df['Team 2'] < df['Team 1'], df['Team 1'], df['Team 2'])
df['Team 1'] = s1
df['Team 2'] = s2
df = df.groupby(['Team 1', 'Team 2', 'Winner'])['winner_count'].sum().reset_index()
df
Out[1]:
Team 1 Team 2 Winner winner_count
0 Afghanistan Australia Australia 2