との間隔によって、私は次のようになります(ボーリング孔からの)長さ間隔データのデータフレームがあります分割長(メートル)のデータパンダ
df
Out[46]:
from to min intensity
0 0 10 py 2
1 5 15 cpy 3.5
2 14 27 spy 0.7
を私はこのデータをピボットする必要がありますが、またそれを破ります少なくとも共通の長さ間隔で;カラムヘッダーとして 'min'カラムが得られ、値は 'rank'になります。あなたが見ることができるように - そう、基本的には「から」との間隔は、少なくとも共通分母によって分割されたボーリング孔を、非重複区間をダウン記述する「を」
df.somefunc(index=['from','to'], columns='min', values='intensity', fill_value=0)
Out[47]:
from to py cpy spy
0 0 5 2 0 0
1 5 10 2 3.5 0
2 10 14 0 3.5 0
3 14 15 0 3.5 0.7
4 15 27 0 0 0.7
:出力は次のようになります。最初の(0-5m)からpy:2、cpy:0まで、そして第2の(5-10m)からpy:2、cpy:3.5に分割されています。ちょうどからインデックスとして組み合わさ列に扱い
pd.pivot_table(df, values='intensity', index=['from', 'to'], columns="min", aggfunc="first", fill_value=0)
Out[48]:
min cpy py spy
from to
0 10 0 2 0
5 15 3.5 0 0
14 27 0 0 0.75
:
だけ基本pivot_table関数からの結果は、このです。重要な点は、私の出力は値との間で重なり合うことができないということです(IEは後続の 'from'値が前の 'to'値より小さくてはいけません)。
パンダを使用してこれを実現するエレガントな方法はありますか?助けてくれてありがとう!
うわー、それはその後、私はそれを取るだろうと思った実際に多くのコードが少ないラインです。どうもありがとう!!! –