Удалить строку в фрейме данных с условиями - PullRequest
1 голос
/ 18 июня 2020

Вот мой фрейм данных:

       ID  Tell  Number 
0       1   Perhaps 2   
1       1   Yes     6
2       1   No      9
3       2   Yes     4
4       2   Ye      7
5       2   No      8
6       3   Ye     15
7       3   Perhaps 2
8       3   No      6
9       3   Yes     2 

# Creating the dictionary
dic = {'ID': [1,1,1,2,2,2,3,3,3,3], 'Tell': ['Perhaps', 'Yes', 'No', 'Yes','Ye', 'No','Ye', 'Perhaps','No', 'Yes'], 'Number': [3,6,9,4,7,8,15,8,6,13]}

# Creating the dataframe
df = pd.DataFrame(dic)

Я хочу, чтобы моя программа могла удалить каждую строку из моего фрейма данных, если число выше 6, а в столбце Tell - «Да» или «Да».

Я хочу, чтобы это выглядело так:

       ID  Tell  Number 
0       1   Yes     2   
1       1   Yes     6
2       1   No      9
3       2   Yes     4
4       2   No      8
5       3   Yes     2
6       3   No      6
7       3   Yes     2 

Вот что я пробовал:

df=df.loc[((df['Number'] < 6) & (df['Tell']!='ye')& (df['Observation']!='Yes'))]

Ответы [ 3 ]

0 голосов
/ 18 июня 2020

На случай, если у вас есть столбец Observation, который вы нам не предоставили. Попробуйте;

 df[(df['Number']<6)&(df['Tell']!='Ye')&(df['Observation']!='Yes')]
0 голосов
/ 18 июня 2020

В этой строке может быть ошибка:

df=df.loc[((df['Number'] < 6) & (df['Tell']!='ye')& (df['Observation']!='Yes'))]

Я вижу, что нет столбца Observation, а также ваш df имеет Ye, а у вас ye ваше состояние. Возможно, в этом проблема. Так что попробуйте использовать заглавные буквы ye в Ye и Observation в Tell

df=df.loc[((df['Number'] < 6) & (df['Tell']!='Ye')& df['Tell']!='Yes'))]

Сообщите мне, была ли это проблема.

0 голосов
/ 18 июня 2020

Вы можете использовать df.query:

print( df.query('not (Number > 6 and Tell in ["Ye", "Yes"])') )

Печать:

   ID     Tell  Number
0   1  Perhaps       3
1   1      Yes       6
2   1       No       9
3   2      Yes       4
5   2       No       8
7   3  Perhaps       8
8   3       No       6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...