Python: удаление содержимого ячейки на основе определенного условия - PullRequest
0 голосов
/ 31 октября 2018

У меня есть файл * .xlsx, как показано ниже -

           A                              B                        C
                                   [['Neutral']]                ['nan']
                                   [['Neutral']]                ['nan']
          Bad                      [['Negative']]               ['Bad']
          Meh                      [['Neutral']]                ['Meh']
                                   [['Neutral']]                ['nan']

Я пытаюсь удалить все значения [['Neutral']] and ['nan'] в столбце B и C ТОЛЬКО, если их значение равно null.

Это мой код -

df1 = pd.read_excel(path)

for i, row in df1.iterrows():
    if pd.isnull(row[0]):
        # del row[1]
        # del row[2]
        row[1] = 0
        row[2] = 0

Мой код находит все нулевые значения идеально, но не может очистить переменную столбца B и C s. Что я делаю не так?

Ожидаемый результат -

       A                              B                        C


      Bad                      [['Negative']]               ['Bad']
      Meh                      [['Neutral']]                ['Meh']

И да, пробелы / ячейки все еще должны существовать.

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Вы можете просто присвоить его, взяв индексы с нулевыми значениями

df.loc[df.A.isnull()] = ''

Из:

        A   B   C
0           
1           
2   Bad [['Negative']]  ['Bad']
3   Meh [['Neutral']]   ['Meh']
4           
0 голосов
/ 31 октября 2018

попробуйте это,

mask=df['A'].isnull()
df.loc[mask]=''

Выход:

     A               B        C
0                              
1                              
2  Bad  [['Negative']]  ['Bad']
3  Meh   [['Neutral']]  ['Meh']
4                              

Для этой проблемы вам не нужно использовать цикл for в пандах,

Объяснение

  1. Найти индекс где А пусто

  2. заменить пустой на выбранный индекс

EDIT:

Чтобы удалить из определенных столбцов,

df.loc[mask,['B','C']]=''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...