2016-06-01 2 views
2

、私はこのスニペットデータフレームのスライス割り当てがインデックスを考慮する理由は何ですか? numpyの出身

import pandas as pd 
import numpy as np 

df1 = pd.DataFrame(np.random.rand(10)) 
df2 = pd.DataFrame(np.arange(10)) 

df1[4:6] = df2[5:7] 

print(df1) 

  0 
0 0.851412 
1 0.533122 
2 0.244325 
3 0.242295 
4 5.000000 
5 6.000000 
6 0.036066 
7 0.350092 
8 0.400461 
9 0.744239 

の線に沿って何かを得るために期待する代わりに、私は明らかに

  0 
0 0.210079 
1 0.603919 
2 0.541231 
3 0.693830 
4  NaN 
5 5.000000 
6 0.742590 
7 0.318744 
8 0.954216 
9 0.641225 

を取得し、パンダは考慮に入れ割り当てを実行するときのインデックスはdf1df2です。私は

df1[4:6] = df2[5:7].values 

を使用して、私の所望の結果を達成できることを知っているが、2つの潜在的に無関係なデータフレームのインデックスをチェックすることが理にかなって、なぜ私は私の人生のために把握することはできません。私もドキュメントを閲覧しましたが、関連するものは見つかりませんでした。私のデータフレームの精神モデルは間違っていますか?私のパンダのバージョンは0.18です。

+1

インデックスが意味のあるもの(ユーザーなど)で、2番目のデータフレームに最初のデータフレームに追加したいユーザーの情報が含まれていた場合は、意味があります。 – IanS

+1

私は、彼らがこれを設計したとき、あるデータフレームから別のデータフレームに何かを割り当てるとき、おそらく関連性があり、インデックスを比較するのが理にかなっていると思っていたと思います。 データフレームの結合/マージの詳細については、こちらをご覧ください:http://pandas.pydata.org/pandas-docs/stable/merging.html –

+1

PS。私は確かに、データフレームのあなたの精神的モデルが間違っていると言うでしょう:)このインデックスベースのロジックは、私がパンダを使用し始めたときの最も難しい部分でした。 – IanS

答えて

2

indexnumpyndarrayよりpandasdataframe何かを作るものです。あなたは一見小さな不便を乗り越えてしまったかもしれませんが、同じ特性はnumpyだけでは達成できない多くの強力な操作を可能にします。

関連する問題