изменить строки в столбце pandas dataframe - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу сделать все строки строчными и удалить пробелы в начале и конце строк.

df = pandas.DataFrame(data=[1,2,3,'A'],columns=['A'])
df['A'] = numpy.where(
    df['A'].apply(lambda x: isinstance(x, str)),
    df['A'].str.lower().str.strip(),
    df['A'],
)

Проблема в том, что приведенный выше код завершается ошибкой, если ни одна из строк не является строкой.

df = pandas.DataFrame(data=[1,2,3],columns=['A'])
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas

Есть ли лучший способ сделать это, чем

for index in df['A'].index:
    if isinstance(df['A'].iloc[index], str):
        df['A'].iloc[index] = df['A'].iloc[index].str.lower().str.strip()

1 Ответ

0 голосов
/ 21 февраля 2019

Если вы хотите оставить свои строки без изменений, вы можете использовать:

df['A']=df['A'].apply(lambda x: x.lower().strip() if isinstance(x, str) else x) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...