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!!