首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python pandas dataframe获取列值的所有组合?

Python pandas dataframe获取列值的所有组合?
EN

Stack Overflow用户
提问于 2018-08-02 03:16:42
回答 4查看 1.4K关注 0票数 3

我有一个熊猫数据帧,看起来像这样:

        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

  • remove副本时,
  • 获得当之无愧的性能
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51640790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档