условие соответствия столбцов значений столбца данных Python - PullRequest
0 голосов
/ 26 мая 2018

Что было бы более элегантным способом записи:

df[df['income'] > 0].count()['income']

Я хотел бы просто посчитать количество значений столбца, соответствующих условию (в этом примере условие просто больше нуля,но я бы хотел, чтобы способ применим к любому условию или набору условий)Очевидно, более элегантно, если имя столбца не нужно будет дважды отображать в выражении.Надеюсь, будет легко.

1 Ответ

0 голосов
/ 26 мая 2018
df = pd.DataFrame([0, 30000, 75000, -300, 23000], columns=['income'])
print(df)
   income
0       0
1   30000
2   75000
3    -300
4   23000

Если вы хотите посчитать значения в столбце, отвечающем чуть более сложному условию, чем просто положительное значение, например, «значение находится в диапазоне от 5000 до 25000», вы можете использовать два метода.

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

((df['income'] > 5000) & (df['income'] < 25000)).sum()

Во-вторых, применяя функцию к каждой строке серии,

df['income'].map(lambda x: 5000 < x < 25000).sum()

Обратите внимание, что второй подход допускает произвольно сложные условия, нонамного медленнее, чем первый подход, использующий низкоуровневые операции с базовыми массивами.См. документацию по булевому индексированию для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...