相关疑难解决方法(0)

确保密钥的笛卡尔积出现在Pandas表中

我有一个Pandas数据框,它有两个关键列,我想确保表中存在这些键的笛卡尔积(因为我必须制作一个包含所有组合的2D图).我无法想出一个相当简短和惯用的方法来做到这一点.

例如,我从这张表开始,给出水果和蔬菜的组合,以及它们如何一起品尝:

   combo   fruit      veg
0  tasty   apple   carrot
1  yucky  banana   carrot
2  tasty  banana  lettuce
3  yucky   lemon  lettuce
Run Code Online (Sandbox Code Playgroud)

我想最终得到所有可能组合的表:

    fruit      veg    combo
0   apple   carrot    tasty
1   apple  lettuce  UNKNOWN
2  banana   carrot    yucky
3  banana  lettuce    tasty
4   lemon   carrot  UNKNOWN
5   lemon  lettuce    yucky
Run Code Online (Sandbox Code Playgroud)

这是我发现的最佳方式:

import pandas as pd

# Initial data
df=pd.DataFrame(dict(fruit=['apple','banana','banana','lemon'],
                     veg=['carrot','carrot','lettuce','lettuce'],
                     combo=['tasty','yucky','tasty','yucky']))

# Solution starts here
veg=df.groupby('veg').size().reset_index()
fruit=df.groupby('fruit').size().reset_index()
fruit[0] = veg[0] = 0    #use this dummy column for the join to work! …
Run Code Online (Sandbox Code Playgroud)

python pandas

10
推荐指数
1
解决办法
2503
查看次数

标签 统计

pandas ×1

python ×1