簡體   English   中英

Pandas 將兩列合並到另一列 Dataframe

[英]Pandas Merge two column to another Dataframe column

我想基於 Squad 列df1將兩列合並到另一個 dataframe

    Squad
0   Arsenal
1   Aston Villa
2   Bournemouth
3   Brighton
4   Burnley
5   Chelsea
6   Crystal Palace
7   Everton
8   Leicester City
9   Liverpool
10  Manchester City
11  Manchester Utd
12  Newcastle Utd
13  Norwich City
14  Sheffield Utd
15  Southampton
16  Tottenham
17  Watford
18  West Ham
19  Wolves

df2

    Rk  Squad   MP  W   D   L   GF  GA  GD  Pts ... L   GF  GA  GD  Pts Pts/G   xG  xGA xGD xGD/90
0   1   Liverpool   19  18  1   0   52  16  36  55  ... 3   33  17  16  44  2.32    31.2    21.6    9.5 0.50
1   2   Manchester City 19  15  2   2   57  13  44  47  ... 7   45  22  23  34  1.79    45.5    19.5    26.0    1.37
2   3   Manchester Utd  19  10  7   2   40  17  23  37  ... 6   26  19  7   29  1.53    28.4    21.1    7.4 0.39
3   4   Chelsea 19  11  3   5   30  16  14  36  ... 7   39  38  1   30  1.58    29.2    27.2    2.0 0.10
4   5   Leicester City  19  11  4   4   35  17  18  37  ... 8   32  24  8   25  1.32    31.0    22.7    8.3 0.44
5   6   Tottenham   19  12  3   4   36  17  19  39  ... 7   25  30  -5  20  1.05    21.6    28.7    -7.1    -0.37
6   7   Wolves  19  8   7   4   27  19  8   31  ... 5   24  21  3   28  1.47    21.2    18.3    2.9 0.15
7   8   Arsenal 19  10  6   3   36  24  12  36  ... 7   20  24  -4  20  1.05    22.0    25.8    -3.8    -0.20
8   9   Sheffield Utd   19  10  3   6   24  15  9   33  ... 6   15  24  -9  21  1.11    15.3    28.2    -12.9   -0.68
9   10  Burnley 19  8   4   7   24  23  1   28  ... 7   19  27  -8  26  1.37    16.6    27.1    -10.4   -0.55
10  11  Southampton 19  6   3   10  21  35  -14 21  ... 6   30  25  5   31  1.63    30.8    24.9    5.9 0.31
11  12  Everton 19  8   7   4   24  21  3   31  ... 11  20  35  -15 18  0.95    21.8    24.9    -3.1    -0.16
12  13  Newcastle Utd   19  6   8   5   20  21  -1  26  ... 11  18  37  -19 18  0.95    15.0    30.3    -15.3   -0.81
13  14  Crystal Palace  19  6   5   8   15  20  -5  23  ... 9   16  30  -14 20  1.05    16.4    31.6    -15.2   -0.80
14  15  Brighton    19  5   7   7   20  27  -7  22  ... 8   19  27  -8  19  1.00    20.3    28.5    -8.2    -0.43
15  16  West Ham    19  6   4   9   30  33  -3  22  ... 10  19  29  -10 17  0.89    22.5    31.9    -9.4    -0.49
16  17  Aston Villa 19  7   3   9   22  30  -8  24  ... 12  19  37  -18 11  0.58    18.5    34.5    -16.0   -0.84
17  18  Bournemouth 19  5   6   8   22  30  -8  21  ... 14  18  35  -17 13  0.68    20.4    32.3    -11.9   -0.63
18  19  Watford 19  6   6   7   22  27  -5  24  ... 13  14  37  -23 10  0.53    18.5    29.9    -11.4   -0.60
19  20  Norwich City    19  4   3   12  19  37  -18 15  ... 15  7   38  -31 6   0.32    17.7    30.2    -12.6   -0.66

我想在 df1 上創建一個新列並進行計算,即 W 列的值除以 MP 列的值。 我試圖將 W 列合並到 df1 但我得到TypeError: Cannot convert bool to numpy.ndarray

df1 = pd.merge(df1, df2['Squad','W'], on='Squad',how='left')

嘗試:

result = df1.merge(df2[['Squad','W', 'MP']], how='left')
result['new_col'] = result['W'] / result['MP']

NOTE:確保在划分之前處理NAN and 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM