如何获得两列的所有组合? (蟒蛇)

时间:2019-04-21 17:11:28

标签: python pandas dataframe combinations itertools

[更新:我想要结果,而不是固定装置。我为积分表添加了代码,该表显示了当前表,我希望以此为基础确定一支球队进入前4名的可能性。

我正在尝试确定体育联赛比赛器材的可能结果组合。

我的数据以csv表的形式显示,如下所示。

下面的结果列将采用主队或客队的价值(概率为0.5)

我想创建一个包含所有可能结果的单独列表,然后将结果合并以查看在给定得分表(df)的情况下一支球队进入前4名的可能性。我正在尝试查看给出所有结果的可能性。

最近刚开始使用Python进行编码,对此感到困难。任何帮助表示赞赏

import numpy as np
import matplotlib as plt
import seaborn_table as sb
import pandas as pd
from itertools import combinations

df = pd.read_csv('ipltable.csv')

df2 = pd.read_csv('ipl2.csv')
print(df2)

##X = df2[['Home']].assign(key=1).merge(df2[['Away']].assign(key=1))

#print(X)

#Y = pd.MultiIndex.from_product([df2.Home,df2.Away]).to_frame()

#print(Y)
print(df)
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
    Fixture  Home  Away  Outcome
0         1   RCB   CSK      NaN
1         2    RR    DC      NaN
2         3   CSK   SRH      NaN
3         4   RCB  KXIP      NaN
4         5   KKR    RR      NaN
5         6   CSK    MI      NaN
6         7    RR   SRH      NaN
7         8    DC   RCB      NaN
8         9   KKR    MI      NaN
9        10   SRH  KXIP      NaN
10       12   CSK    DC      NaN
11       13    MI   SRH      NaN
12       14  KXIP   KKR      NaN
13       15    DC    RR      NaN
14       16   RCB   SRH      NaN
15       17  KXIP   CSK      NaN
16       18    MI   KKR      NaN


  Team Name  Matches  Points    NRR  W  L
0       CSK        9      14  0.101  7  2
1        MI       10      12  0.357  6  4
2        DC       10      12  0.160  6  4
3       SRH        9      10  0.736  5  5
4      KXIP       10      10 -0.044  5  5
5       KKR       10       8 -0.013  4  6
6        RR        9       6 -0.474  3  6
7       RCB        9       4 -0.938  2  7

1 个答案:

答案 0 :(得分:2)

如果您需要两个团队中的所有产品

方法1分配新值,然后分配merge

df[['Home']].assign(key=1).merge(df[['Away']].assign(key=1))

方法2 pd.MultiIndex

pd.MultiIndex.from_product([df.Home,df.Away]).to_frame()

方法3 itertools.product

pd.DataFrame(list(itertools.product(df.Home.tolist(),df.Away.tolist())))