Удалить строку из нескольких столбцов в Панд

#python #pandas

Вопрос:

Цель состоит в том , чтобы удалить 0 из столбцов с ячейкой ↑ 0 и привести в . Такой, что

    Data myda   xda
0   ↑ *  ↑ 0     0
1     *    *   100
2  ↑ **  ↑ 0  0.05
 

в

    Data myda   xda
0   ↑ *  ↑       0
1     *    *   100
2  ↑ **  ↑    0.05
 

Код реализован

 import pandas as pd


pat = r'^?(0)

Но это не возвращает ожидаемый результат


Комментарии:

1. df.myda = df.myda.str.rstrip('0') может быть?

Ответ №1:

Расширение к предложению @sammy, применение этого ко всем столбцам может быть достигнуто с помощью lambda

 df = pd.DataFrame ( {'Data': ['↑ *', '*', '↑ **'],
                     'myda': ['↑ 0', '*', '↑ 0'],
                     'xda': ['0', '100', '0.05']} )

df[df.columns] = df.apply(lambda x: x.str.rstrip('0'))
 

Выход

    Data myda   xda
0   ↑ *   ↑       
1     *    *     1
2  ↑ **   ↑   0.05
 

df = pd.DataFrame ( {'Data': ['↑ *', '*', '↑ **'],
'myda': ['↑ 0', '*', '↑ 0'],
'xda': ['0', '100', '0.05']} )
df=df.replace(dict(string={pat: ''}), regex=True)
Но это не возвращает ожидаемый результат

Комментарии:

1. df.myda = df.myda.str.rstrip('0') может быть?

Ответ №1:

Расширение к предложению @sammy, применение этого ко всем столбцам может быть достигнуто с помощью lambda


Выход