我正在努力改进Python并决定对我的一个激情做一些分析。摔角!在这种情况下,日本摔跤!
基本上我正在尝试从另一个数据帧更新一个数据帧中的值。这是我的第一个数据框架
| | Wrestler | Matches | DMR |
| 0 | TETSUYA NAITO | 9 | 0 |
| 1 | HIROSHI TANAHASHI | 9 | 0 |
| 2 | BAD LUCK FALE | 9 | 0 |
| 3 | KOTA IBUSHI | 9 | 0 |
| 4 | ZACK SABRE JR. | 9 | 0 |
| 5 | HIROOKI GOTO | 9 | 0 |
| 6 | TOMOHIRO ISHII | 9 | 0 |
| 7 | TOGI MAKABE | 9 | 0 |
| 8 | YOSHI-HASHI | 9 | 0 |
| 9 | YUJI NAGATA | 9 | 0 |
我想要更新的专栏是来自我输入的一些数据生成的另一个数据框的DMR *(Dave Meltzer Ratings)*:
| Wrestler | DMR |
| BAD LUCK FALE | 3.166667 |
| HIROOKI GOTO | 3.694444 |
| HIROSHI TANAHASHI | 4.111111 |
| KOTA IBUSHI | 4.222222 |
| TETSUYA NAITO | 4 |
| TOGI MAKABE | 3.611111 |
| TOMOHIRO ISHII | 4.25 |
| YOSHI-HASHI | 3.638889 |
| YUJI NAGATA | 4.138889 |
| ZACK SABRE JR. | 3.611111 |
我觉得这很简单但我找不到任何可以解释如何做的事情。对此的任何帮助将不胜感激。
谢谢, 单
答案 0 :(得分:1)
Series
使用map
:
df1['DMR'] = df1['Wrestler'].map(df2.set_index('Wrestler')['DMR'])
df1 = pd.merge(df1.drop('DMR', axis=1), df2, how='left')
print (df1)
Wrestler Matches DMR
0 TETSUYA NAITO 9 4.000000
1 HIROSHI TANAHASHI 9 4.111111
2 BAD LUCK FALE 9 3.166667
3 KOTA IBUSHI 9 4.222222
4 ZACK SABRE JR. 9 3.611111
5 HIROOKI GOTO 9 3.694444
6 TOMOHIRO ISHII 9 4.250000
7 TOGI MAKABE 9 3.611111
8 YOSHI-HASHI 9 3.638889
9 YUJI NAGATA 9 4.138889
注意:
Wrestler
中df2
列中的值必须是唯一的。
答案 1 :(得分:0)
所以我假设您的第一个数据帧称为df1,而您的第二个数据帧称为df2。然后这将工作:
df1 = df1.drop('DMR', 1)
df = merge(df1, df2, on = 'Wrestler')
从第一个数据框中删除DMR,然后将它们合并到Wrestler列上。