2016-03-21 23 views
1

Excelから読み取ったdf1を持っていて、同じ列の空のdf2を作成します。 今、いくつかの条件を満たすdf1からいくつかの行をdf2に移動したいと思います。 pop()のような簡単な方法はlistにあります。つまり、そのアイテムを新しいリストにポップして古いリストから削除することができます。私がやっている何パンダは1 DFから別のDFに行を移動します

df1からそれらを削除するdf1=df1[~condition]、その後、df2にこれらの行を追加しているが、私はいつも迷惑な警告を得た:

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

私は警告の上だと思うコメントこの後、"df1=df1[~condition]"によるものです警告は消えた。

+0

あなたはこの を見てみたいことがあり[のhttp:// stackoverflowの.com/questions/15310140/transfer-values-from-one-dataframe-to-another](http://stackoverflow.com/questions/15310140/transfer-values-from-one-dataframe-to-another) – Stryker

+2

こんにちはあなたが提案したリンクは、Rのpythonではありません – yren

答えて

5

あなたは、あなたが次の操作を行うことができ、(あなたがいない表示されます)あなたのインデックスを気にしない場合:

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 
+0

アレキサンダーありがとう!ニースのソリューションと素晴らしい作品! – yren

関連する問題