今天,我发现我的python pandas
行为异常。让我给你看下面的例子。首先,我导入pandas
,并制作一个示例数据帧。你知道吗
>> import pandas as pd
>> pd.__version__
'0.25.1'
>> df_test = pd.DataFrame([
{'make': 'toyota', 'model': 'yaris', 'body': 'hatchback'},
{'make': 'toyota', 'model': 'corolla', 'body': 'sedan'},
{'make': 'toyota', 'model': 'rav 4', 'body': 'suv'},
{'make': 'toyota', 'model': 'avensis', 'body': 'sedan'},
{'make': 'toyota', 'model': 'avensis', 'body': 'combi'},
{'make': 'toyota', 'model': 'avensis', 'body': 'mpv'},
{'make': 'toyota', 'model': 'avensis', 'body': 'pickup'},
])
>> print(df_test)
make model body
0 toyota yaris hatchback
1 toyota corolla sedan
2 toyota rav 4 suv
3 toyota avensis sedan
4 toyota avensis combi
5 toyota avensis mpv
6 toyota avensis pickup
到目前为止还不错。但是现在,下面的代码有问题。你知道吗
>> def unify_body_for_toyota_avensis(row):
if row['make']=='toyota' and row['model']=='avensis' and row['body'] in ['hatchback', 'mpv', 'pickup']:
return 'combi'
return row['body']
>> df_test['body'] = df_test.apply(lambda row: unify_body_for_toyota_avensis(row), axis=1)
File "<ipython-input-53-cd7640bc0c54>", line 2
if row['make']=='toyota' and row['model']=='avensis' and row['body'] in ['hatchback', 'mpv', 'pickup']:
^
SyntaxError: invalid character in identifier
但是,当我从unify_body_for_toyota_avensis
函数中删除第一个条件时,一切正常:
>> def unify_body_for_toyota_avensis(row):
if row['model']=='avensis' and row['body'] in ['hatchback', 'mpv', 'pickup']:
return 'combi'
return row['body']
>> df_test['body'] = df_test.apply(lambda row: unify_body_for_toyota_avensis(row), axis=1)
>> print(df_test)
make model body
0 toyota yaris hatchback
1 toyota corolla sedan
2 toyota rav 4 suv
3 toyota avensis sedan
4 toyota avensis combi
5 toyota avensis combi
6 toyota avensis combi
拜托,你能帮帮我吗,我缺了什么?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐