Можно ли проверить, соответствует ли переменная двум условиям в разных строках? - PullRequest
0 голосов
/ 15 апреля 2020

Ну, у меня есть фрейм данных о продажах продукта. Одной из переменных является «Идентификация продукта», а другой - «Item_Weight». У Item_Weight есть некоторые пропущенные значения. Итак, я хочу знать, есть ли какой-либо продукт, который в строке заполнен 'Item_Weight', а в другой строке нет.

Фрейм данных выглядит так:

 Item_Identifier  Item_Weight Item_Fat_Content  Item_Visibility    Item_Type  \
0           FDA15         9.30          Low Fat         0.016047        Dairy   
1           DRC01         5.92          Regular         0.019278  Soft Drinks   
2           FDN15        17.50          Low Fat         0.016760         Meat   

   Item_MRP Outlet_Identifier  Outlet_Establishment_Year Outlet_Size  \
0  249.8092            OUT049                       1999      Medium   
1   48.2692            OUT018                       2009      Medium   
2  141.6180            OUT049                       1999      Medium   

  Outlet_Location_Type        Outlet_Type  Item_Outlet_Sales  
0               Tier 1  Supermarket Type1          3735.1380  
1               Tier 3  Supermarket Type2           443.4228  
2               Tier 1  Supermarket Type1          2097.2700   

Итак, я до сих пор делал создание нового df только с помощью Item_Identifier и Item_Weight и заполнял недостающие значения (-1), а все остальные значения (-2) на ' Item_Weight ':

dfAux = df[['Item_Identifier','Item_Weight']]

dfAux['Item_Weight'].fillna(-1, inplace=True)

dfAux.loc[dfAux['Item_Weight'] > 0, 'Item_Weight'] = -2

После этого я много чего пробовал, чтобы посмотреть, смогу ли я найти' Item_Identifier ', которые имеют значения (-1) и (-2). Ни одна из этих попыток не увенчалась успехом, поэтому мне нужна ваша помощь.

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

Заранее спасибо.

1 Ответ

0 голосов
/ 15 апреля 2020

Если вы хотите получить строки со значением Item_Weight, равным -1 или -2, то вот код, который можно использовать для выполнения этой задачи.

dfAux[(dfAux['Item_Weight']==-1) | (dfAux['Item_Weight']==-2) ]

Приведенный выше код вернет все строки, которые имеют значение Item_Weight как -1 или -2.

Для операторов 'or' и 'и' python требуются значения истинности. Для pandas они считаются неоднозначными, поэтому вы должны использовать побитовые операторы:

| для выполнения операций или

и

& для выполнения операций и .

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