2015-11-27 3 views
2

У меня есть матрицу pandas dataframe, который выглядит следующим образом:Как разбить кадр данных на части по конкретным значениям столбца?

Store Sales year month day 
0 1 5263 2015 7 31 
1 1 5020 2015 7 30 
2 1 4782 2015 7 29 
3 2 5011 2015 8 28 
4 2 6102 2015 9 27 
[986159 rows x 5 columns] 

Мне нужно разделить данные вверх в удалении месяца, когда значение 8 и 9. Тогда мне нужно остальная части подготовки данных для быть в другом наборе.

я мог бы сделать это так, но это не работает:

# Dataframe with 8 and 9 months 
train_X1 = train[train['month'] == 9 or train['month'] == 8] 
# The rest of the data 
train_X2 = train[train['month'] != 9 or train['month'] != 8] 

Я мог бы это сделать, но это только получает мне одну часть данных с 8 и 9 месяц, а остальное не улавливается :

train8 = train[train['month'] == 8] 
train9 = train[train['month'] == 9] 
train89 = train8 + train9 

Как разбить dataframe на на 2 части, где один из его имеет конкретные значения без разделения его дважды? (может быть, с dataframe.query() или ?)

+0

Вы хотите использовать ', если с and' здесь' если поезд [поезд [ 'месяц'] = 9 и поезд [ 'месяц'] = 8:! Train_X2 = поезд [поезд [ 'месяц'] «Я не знаю, решает ли это проблему. Я не использовал pandas –

ответ

1

Синтаксис операции неверен, замените приведенное выше разделение следующим. Вам также нужно обернуть каждый предикат в parens и использовать '|' (или) и «&» (и). Это приведет к соответствующим расщеплениям.

train_X1 = train[(train['month'] == 9) | (train['month'] == 8)] 
train_X2 = train[(train['month'] != 9) & (train['month'] != 8)] 
+0

Непонятный вопрос, ключевые слова python, такие как 'or' и' and', не используются в этом сценарии pandas? А также '&&' и '||'? – alvas

+1

Вы не можете использовать && или || - они не являются действительными действиями python. 'или' и 'и' не работают, потому что вы на самом деле сравниваете две серии pandas с булевым типом. проверьте, какой поезд ['month'] == 9 дает вам. –

+0

Спасибо @JonahWilliams !! – alvas

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