在for循环中在数据框中追加行

时间:2020-05-15 10:23:05

标签: pandas

我有一个长度为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]])

1 个答案:

答案 0 :(得分:0)

我认为您可以使用.isin()来代替循环。 要了解更多信息,您可以查看:pandas.Series.isinpandas.DataFrame.isin

这是我的建议:

Columnlist中具有Dataframe1的行从DataFrame2添加到Dataframe2 = pd.concat([Dataframe2, Dataframe1[Dataframe1["Column"].isin(list)]],ignore_index=True)

Column

listDataframe1添加DataFrame3不在Dataframe3 = pd.concat([Dataframe3, Dataframe1[~Dataframe1["Column"].isin(list)]],ignore_index=True) 中的行

{{1}}