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
を取得し、パンダは考慮に入れ割り当てを実行するときのインデックスはdf1
とdf2
です。私は
df1[4:6] = df2[5:7].values
を使用して、私の所望の結果を達成できることを知っているが、2つの潜在的に無関係なデータフレームのインデックスをチェックすることが理にかなって、なぜ私は私の人生のために把握することはできません。私もドキュメントを閲覧しましたが、関連するものは見つかりませんでした。私のデータフレームの精神モデルは間違っていますか?私のパンダのバージョンは0.18です。
インデックスが意味のあるもの(ユーザーなど)で、2番目のデータフレームに最初のデータフレームに追加したいユーザーの情報が含まれていた場合は、意味があります。 – IanS
私は、彼らがこれを設計したとき、あるデータフレームから別のデータフレームに何かを割り当てるとき、おそらく関連性があり、インデックスを比較するのが理にかなっていると思っていたと思います。 データフレームの結合/マージの詳細については、こちらをご覧ください:http://pandas.pydata.org/pandas-docs/stable/merging.html –
PS。私は確かに、データフレームのあなたの精神的モデルが間違っていると言うでしょう:)このインデックスベースのロジックは、私がパンダを使用し始めたときの最も難しい部分でした。 – IanS