[英]Populate a panda's dataframe column based on another column and dictionary value
[英]Panda column value change based on another column by lamda function
我有一只熊猫 dataframe:
star = pd.DataFrame({'Country':['Canada','USA', 'Mexico'],'Rating':[1,2,3], 'Score':[70,80,90]})
我想给加拿大评级值 3。 这段代码有效。
star.loc[star['Country'] == 'Canada', 'Rating'] = 3
但我想用 lambda function 来做:
star.Rating.map(lambda x: 3 if star.Country == 'Canada')
给出语法错误
File "<ipython-input-41-544a311d7f86>", line 1
star.Rating.map(lambda x: 3 if star.Country == 'Canada')
^
SyntaxError: invalid syntax
我需要 lambda function 的帮助
这确实是一个语法错误。 你应该做:
star.apply(lambda x: 3 if x.Country == 'Canada' else x.Rating, axis=1)
但是,您的原始解决方案要好得多。
对于此类问题,我建议您避免apply
(或map
)。 np.where
更快更容易实现
star["Rating"] = np.where(star.Country=="Canada", 3, star.Rating)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.