我有一个熊猫数据帧,看起来像这样:
colour points
0 red 1
1 yellow 10
2 black -3
然后,我尝试执行以下算法:
combos = []
points = []
for i1 in range(len(df)):
for i2 in range(len(df)):
colour_main = df['colour'].values[i1]
colour_secondary = df['colour'].values[i2]
combo = colour_main + "_" + colour_secondary
point1 = df['points'].values[i1]
point2 = df['points'].values[i2]
new_points = point1 + point2
combos.append(combo)
points.append(new_points)
df_new = pd.DataFrame({'colours': combos,
'points': points})
print(df_new)
我想得到所有的组合和求和点:
如果颜色用作主颜色,我想求和他的值,如果颜色用作次要颜色,我想求反方向值
示例:
red_yellow = 1 + (-10) = -9
red_black = 1 + ( +3) = 4
black_red = -3 + ( -1) = -4
我现在得到的输出是:
colours points
0 red_red 2
1 red_yellow 11
2 red_black -2
3 yellow_red 11
4 yellow_yellow 20
5 yellow_black 7
6 black_red -2
7 black_yellow 7
8 blac_kblack -6
我正在寻找的输出:
red_yellow -9
red_black 4
yellow_red 9
yellow_black 13
black_red -4
black_yellow -13
我不知道如何将我的逻辑应用到这段代码中,而且我打赌有一种更简单的方法可以在不执行两个循环的情况下获得所有组合,但目前,这是我唯一想到的事情。
我想:
当我们像red_red这样获得20个输入colours
https://stackoverflow.com/questions/51640790
复制相似问题