2016-11-30 5 views
1

У меня есть таблица в моем кадре данных pandas. ДФсоздать новый dataframe из выбора определенных строк из существующего dataframe python

id count price 
1 2  100 
2 7  25 
3 3  720 
4 7  221 
5 8  212 
6 2  200 

я хочу, чтобы создать новую dataframe (df2) от этого выбора строки, где отсчет 2 и цена 100, и отсчет 7 и цена 221

мой вывод должен быть df2 =

id count price 
1 2  100 
4 7  221 

я пытаюсь с помощью df[df['count'] == '2' & df['price'] == '100']

но получаю ошибку

TypeError: cannot compare a dtyped [object] array with a scalar of type [bool] 
+0

Это классика: 'df [(df ['count'] == '2') & (df [' price '] ==' 100 ')] '. – IanS

ответ

3

Вы nedd добавить (), потому что & имеет более высокий приоритет, чем ==:

df3 = df[(df['count'] == '2') & (df['price'] == '100')] 
print (df3) 
    id count price 
0 1  2 100 

Если нужно проверить несколько значений использовать isin:

df4 = df[(df['count'].isin(['2','7'])) & (df['price'].isin(['100', '221']))] 
print (df4) 
    id count price 
0 1  2 100 
3 4  7 221 

Но если проверка цифровой, использование:

df3 = df[(df['count'] == 2) & (df['price'] == 100)] 
print (df3) 

df4 = df[(df['count'].isin([2,7])) & (df['price'].isin([100, 221]))] 
print (df4) 
+0

, но как я могу объединить два результата в 1 df.? Я думал о создании двух разных фреймов для моих двух строк, которые я хочу, а затем добавить их? есть ли другой способ сделать это? – Shubham

+0

Вы думаете, что присваиваете 'df3' или' df4'? – jezrael

+0

df4 рабочий прекрасный! – Shubham

Смежные вопросы