Сегодня я обнаружил, что мой питон 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
Пожалуйста,не могли бы вы мне помочь, чего мне не хватает?