有如下数据帧:
import pandas as pd
raw_data = {'name': ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel'],
'age': [20, 19, 22, 21],
'favorite_color': ['blue', 'blue', 'yellow', "green"],
'grade': [88, 92, 95, 70]}
df = pd.DataFrame(raw_data)
我想将age
和grade
数值单元格值除以favorite_color
列中的blue
为125.0,将yellow
值除以130.0,将green
除以135.0。结果必须插入新的列age_new
,grade_new
。
通过下面的代码我收到错误。你知道吗
df['age_new'] =(df.loc[df['favorite_color']=='blue']/125.0)
df['age_new'] =(df.loc[df['favorite_color']=='yellow']/130.0)
df['age_new'] =(df.loc[df['favorite_color']=='green']/135.0)
df['grade_new'] =(df.loc[df['favorite_color']=='blue']/125.0)
df['grade_new'] =(df.loc[df['favorite_color']=='yellow']/130.0)
df['grade_new'] =(df.loc[df['favorite_color']=='green']/135.0)
错误:
TypeError: unsupported operand type(s) for /: 'str' and 'int'
您可以使用
.replace
而不是.loc
,这样您只执行一次操作。你知道吗这给了
map
类似
相关问题 更多 >
编程相关推荐