Панды - Как удалить строку или столбец, если они имеют определенное значение в большинстве случаев? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть Dataframe, где у меня есть некоторые пропущенные значения как "none".

import pandas as pd df = pd.DataFrame ({'Category': (['none',''women','kids']), 'Sales': (['none','none','40']), '# of customers': (['30','none','50']) })

Я хочу удалить строки или столбцы, которые имеют большинство значений как «none».Как это сделать?Спасибо

Ответы [ 2 ]

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

Или:

df.loc[:,(df=='none').sum()<=1]

Вывод:

  # of customers Category
0             30     none
1           none    women
2             50     kids
0 голосов
/ 09 октября 2018

1-е решение трактует никто как символ, а не NaN, мы используем eq с sum (если нужно сбросить row, используя sum(axis=1))

df.loc[:,df.eq('none').sum().lt(2)]
Out[559]: 
  # of customers Category
0             30     none
1           none    women
2             50     kids

2-е решение предполагает, что вы не имеетекак np.nan и использование dropna с thresh

#df=df.replace('none',np.nan)

df.dropna(axis=0,thresh=2)#here thresh is Require that many non-NA values.
Out[563]: 
  # of customers Category Sales
2             50     kids    40
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...