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

2024-05-23 16:41:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经从Excel中读取了df1,然后用相同的列创建了一个空的df2。 现在我想把一些匹配条件的行从df1移到df2。 有没有什么简单的方法可以像list中的pop()这样做,这意味着可以将项目弹出到新列表并从旧列表中删除。

我要做的是将这些行附加到df2,然后df1=df1[~condition]以将它们从df1中删除,但我总是收到恼人的警告:

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

我认为上面的警告是由于"df1=df1[~condition]",经过注释这个警告消失了。


Tags: 项目方法警告dataframe列表indexcondition条件
1条回答
网友
1楼 · 发布于 2024-05-23 16:41:05

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

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

相关问题 更多 >