Python 循环通过一个数据帧,并根据真/假将行附加到其他数据帧

Python 循环通过一个数据帧,并根据真/假将行附加到其他数据帧,python,pandas,dataframe,data-science,Python,Pandas,Dataframe,Data Science,这个问题很简单,我第一次使用熊猫,但在谷歌上还是找不到答案 我有这个数据帧信息 info.head 艺术家在火车新的文件名 0 Barnett Newman True 102257.jpg 1 Barnett Newman True 75232.jpg 2 kiri nichol False 32145.jpg . . . 现在,我想创建两个新的数据帧,并根据_train中的列是True还是False,从info向它们添加行 train_info=pd.DataFrame(列=('artist

这个问题很简单,我第一次使用熊猫,但在谷歌上还是找不到答案

我有这个数据帧信息

info.head
艺术家在火车新的文件名
0 Barnett Newman True 102257.jpg
1 Barnett Newman True 75232.jpg
2 kiri nichol False 32145.jpg
.
.
.
现在,我想创建两个新的数据帧,并根据_train中的列是True还是False,从info向它们添加行

train_info=pd.DataFrame(列=('artist','filename'))
test_info=pd.DataFrame(列=('artist','filename'))
对于索引,info.iterrows()中的行:
如果行[“列车内”]==真:
列车信息追加(行[[“艺术家”,“新文件名”]]
其他:
test_info.append(第[[“艺术家”,“新文件名”]]行)
出于某种原因,此代码将info中的所有行分配给test_info,而没有分配给train_info。 如何解决此问题?

iterrows
位于
pandas
中,您可以通过屏蔽非常简单地解决此问题

df = pd.DataFrame({'artist':np.random.randint(0,10,10),
                   'in_train':np.random.randint(0,2,10).astype(bool),
                   'new_filename':np.random.rand(10)})

train_info = df[df['in_train']].drop(columns='in_train').reset_index(drop=True)
test_info = df[~df['in_train']].drop(columns='in_train').reset_index(drop=True)
iterrows
位于
pandas
中,您可以通过屏蔽非常简单地解决它

df = pd.DataFrame({'artist':np.random.randint(0,10,10),
                   'in_train':np.random.randint(0,2,10).astype(bool),
                   'new_filename':np.random.rand(10)})

train_info = df[df['in_train']].drop(columns='in_train').reset_index(drop=True)
test_info = df[~df['in_train']].drop(columns='in_train').reset_index(drop=True)

您好,是bool类型的列车列吗?我想你应该在“是的,我试过了,但后来我检查了和:info.dtypes:in_train bool”之间加上True?我想你应该在“是的,我试过了,但后来我检查了和:info.dtypes:in_train bool”之间加上True