У меня есть dataframe, как показано ниже:как сделать операцию на строку панды dataframe
df = pd.DataFrame({'a': [10, 11, None],
'b': ['apple;', None, 'orange;'],
'c': ['red', 'blue', 'green']})
Я пытаюсь обирать «;» из этих строк. Я попытался
df.select_dtypes(include=['object']).applymap(lambda x: x.strip(';'))
Я получил сообщение об ошибке:
AttributeError: ("'NoneType' object has no attribute 'strip'", 'occurred at index b')
Похоже, что никто не дал мне некоторые проблемы. Помощь очень ценится. Большое спасибо.
проблема с 'лямбда-х: x.strip («;»), если х еще x' является то, что вы будете иметь ATT ошибки ребра с другими объектами, которые ложны в смысле Python, а также не имеют метода '.strip'. Вы можете сделать lambda x: x.strip (';'), если hasattr (x, 'strip') else x', если вы хотите сделать это, сначала проверив тестирование. – dawg
@ dawg, правильно. так как данные в примере содержат только строки, если 'if x' было достаточно. Другим вариантом является проверка 'if type (x) == str', чтобы убедиться, что' strip' будет только на строках (а не на других объектах, которые могут иметь функцию полосы, что мы не уверены, вернем ожидаемый результат). – Dekel
это прекрасно. Большое спасибо! – zesla