[英]Merge two dataframe if one string column is contained in another column in Pandas
[英]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.