Python: очистить грязный массив данных по его значению

Оберните каждое отдельное условие в круглых скобках, а затем используйте оператор & для объединения условий:

df.loc[(df['one'] >= df['two']) & (df['one'] <= df['three']), 'que'] = df['one']

Вы можете заполнить несоответствующие строки, просто используя ~ (" не ") для инвертирования соответствия:

df.loc[~ ((df['one'] >= df['two']) & (df['one'] <= df['three'])), 'que'] = ''

Вам нужно использовать & и ~, а не and и not, поскольку работают операторы & и ~ элемент за элементом.

Конечный результат:

df
Out[8]: 
  one  two three que
0  10  1.2   4.2  10
1  15   70  0.03    
2   8    5     0  
0
задан Lara19 27 March 2019 в 06:24
поделиться

1 ответ

Я думаю, что лучший способ - создать функцию, которая будет обрабатывать строку за строкой:

  • прочитать строку и разделить на список через str.split()

  • Анализ каждого элемента с помощью RegEx . Например, ^[^:]+:\s* поможет вам получить все, что находится перед «:».

  • Храните все обратно в нужном месте (используя, например, pandas Dataframe )

0
ответ дан Yassine 27 March 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: