Pandas将行从1 DF移动到另一个DF

时间:2016-03-21 22:38:11

标签: python pandas

我从Excel中读取df1,然后创建一个具有相同列的空df2。 现在我想将df1的某些行移动到df2。 是否有任何简单的方法可以像pop()中的list那样执行此操作,这意味着该项可以弹出到新列表并从旧列表中删除。

我正在做的是将这些行追加到df2,然后df1=df1[~condition]将其从df1中删除,但我总是收到恼人的警告:

"UserWarning: Boolean Series key will be reindexed to match DataFrame index.
"DataFrame index.", UserWarning)"

我认为上面的警告是由于"df1=df1[~condition]",在评论之后警告消失了。

1 个答案:

答案 0 :(得分:7)

如果您不关心索引(看起来不关心),那么您可以执行以下操作:

np.random.seed(0)
df1 = pd.DataFrame(np.random.randn(5, 3), columns=list('ABC'))
df2 = pd.DataFrame(columns=df1.columns)

>>> df1
          A         B         C
0  1.764052  0.400157  0.978738
1  2.240893  1.867558 -0.977278
2  0.950088 -0.151357 -0.103219
3  0.410599  0.144044  1.454274
4  0.761038  0.121675  0.443863

cond = df1.A < 1
rows = df1.loc[cond, :]
df2 = df2.append(rows, ignore_index=True)
df1.drop(rows.index, inplace=True)

>>> df1
          A         B         C
0  1.764052  0.400157  0.978738
1  2.240893  1.867558 -0.977278

>>> df2
          A         B         C
0  0.950088 -0.151357 -0.103219
1  0.410599  0.144044  1.454274
2  0.761038  0.121675  0.443863