我有一个长度为4000的Dataframe1,并且有一个长度为600的列表。
我想将列表与Dataframe1中的一列进行比较,如果它们具有相同的值,我想将Dataframe1的行移至Dataframe2,否则,我要将其移至Dataframe3
所以这是我的代码,但是它需要永远运行,任何人都可以推荐一个更快的解决方案。
for i in range(len(Dataframe1)):
for j in range(len(list)):
if Dataframe1['Column'][i] == list[j]:
Datafram2 = Dataframe2.append(Dataframe1.loc[[i]])
else:
Datafram3 = Dataframe3.append(Dataframe1.loc[[i]])
答案 0 :(得分:0)
我认为您可以使用.isin()
来代替循环。
要了解更多信息,您可以查看:pandas.Series.isin和pandas.DataFrame.isin
这是我的建议:
将Column
中list
中具有Dataframe1
的行从DataFrame2
添加到Dataframe2 = pd.concat([Dataframe2, Dataframe1[Dataframe1["Column"].isin(list)]],ignore_index=True)
Column
从list
到Dataframe1
添加DataFrame3
不在Dataframe3 = pd.concat([Dataframe3, Dataframe1[~Dataframe1["Column"].isin(list)]],ignore_index=True)
中的行
{{1}}