Добавьте символ к значению в столбце Pandas Dataframe, если значение имеет определенную длину.Python

Программы на Python
Ответить
Anonymous
 Добавьте символ к значению в столбце Pandas Dataframe, если значение имеет определенную длину.

Сообщение Anonymous »

Я пытаюсь переформатировать значения в столбце фрейма данных для роста человека, например, с 5 футов 8 дюймов на 5 футов 8 дюймов и полагаю, что могу, по крайней мере, сначала заменить апостроф и двойные кавычки на «футы» и «дюймы». Итак, у меня есть вот это, которое отлично подходит для этой замены:

Код: Выделить всё

df['Height'] = df['Height'].str.replace("'", ' Feet ').str[:-1] + " Inches"
У меня проблема в том, что форматирование также должно быть «... 0x дюймов», например «5 футов 08 дюймов». Я полагаю, что могу сделать это в зависимости от длины значения, но не могу понять, как это написать. Если я правильно делаю математические расчеты, блок-схема if где-то здесь будет такой:

Код: Выделить всё

if Height field value length = 15 then replace add "0" in the 8th position else do nothing to the value
Я был бы рад попробовать несколько разных вариантов, вот какие результаты я опробовал.

Код: Выделить всё

df['Height'] = np.where(df.Height.str.len() == 15, df.Height, df.Height[:8] + '0' + df.Height[8:])

No change

Код: Выделить всё

df['Height'] = np.where(df['Height'].str.len() == 15, df.apply(lambda x: x['Height'][:8]+'0'+x['Height'][8:], axis=1), df['Height'])

TypeError: 'float' object is not subscriptable

Код: Выделить всё

df['Height'] = np.where(df['Height'].str.len() == 15, df['Height'], df['Height'][:8] + '0' + df['Height'][8:])

No change
Спасибо!
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»