[英]python: pandas: add values from other dataframe into new column by condition
I have two dataframes with the following data:我有两个包含以下数据的数据框:
fixtures = pd.DataFrame(
{'HomeTeam': ["A", "B", "C", "D"], 'AwayTeam': ["E", "F", "G", "H"]})
ratings = pd.DataFrame({'team': ["A", "B", "C", "D", "E", "F", "G", "H"], "rating": [
"1,5", "0,2", "0,5", "2", "3", "4,8", "0,9", "-0,4"]})
now i want to map the value from ratings["rating"]
to the respective team names but i can't get it to work.现在我想要 map 从
ratings["rating"]
到各自团队名称的值,但我无法让它工作。 is it possible to have new columns with the ratings appear to the right of the HomeTeam
and AwayTeam
columns?是否可以在
HomeTeam
和AwayTeam
列的右侧显示评级的新列?
expected output:预计 output:
fixtures:固定装置:
homeTeam homeTeamRating awayTeam AwayTeamRating
Team A 1,5 Team E 3
you can use:您可以使用:
to_replace=dict(zip(ratings.team,ratings.rating)) #create a dict. Key is team name value is rating.
#{'A': '1,5', 'B': '0,2', 'C': '0,5', 'D': '2', 'E': '3', 'F': '4,8', 'G': '0,9', 'H': '-0,4'}
fixtures['homeTeamRating']=fixtures['HomeTeam'].map(to_replace) #use map and replace team column as a new column.
fixtures['AwayTeamRating']=fixtures['AwayTeam'].map(to_replace)
fixtures=fixtures[['HomeTeam','homeTeamRating','AwayTeam','AwayTeamRating']]
'''
HomeTeam homeTeamRating AwayTeam AwayTeamRating
0 A 1,5 E 3
1 B 0,2 F 4,8
2 C 0,5 G 0,9
3 D 2 H -0,4
'''
If you need to apply a method over an existing column in order to compute some values that will eventually be added as a new column in the existing DataFrame
, then pandas.DataFrame.apply()
method should do the trick.如果您需要在现有列上应用一种方法以计算最终将作为新列添加到现有
DataFrame
中的一些值,那么pandas.DataFrame.apply()
方法应该可以解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.