Python 如何按列的特定值将数据帧拆分为多个部分?

Python 如何按列的特定值将数据帧拆分为多个部分?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个pandas数据帧矩阵,看起来像这样: 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

我有一个
pandas
数据帧矩阵,看起来像这样:

  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
拆分为两个部分,其中一个部分具有特定值而不拆分两次?
(可能使用
dataframe.query()
pandas.train\u test\u split()
?)

操作的语法不正确,请用以下内容替换上述拆分。您还需要将每个谓词包装在paren中,并使用“|”(or)和“&”(and)。这将执行适当的拆分

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

您想在这里使用
if with and
if train[train['month']!=9和train['month']!=8:train_X2=train[train['month']我不知道这是否解决了问题。我没有使用pandas只是一个简短的问题,python关键字,如
在这个场景中是不可用的,对吗?还有
&
|
?你不能使用&&或| |-它们不是有效的python操作。“或”和“不工作,因为”你实际上是在用布尔类型比较两个熊猫系列。检查一下['month']==9给你的火车。谢谢@JonahWilliams!!