I、次のデータフレームを有する:減算
SID AID START END
71 1 1 -11136 -11122
74 1 1 -11121 -11109
78 1 1 -11034 -11014
79 1 2 -11137 -11152
83 1 2 -11114 -11127
86 1 2 -11032 -11038
88 1 2 -11121 -11002
私は順番に、AID == 1及びAID == 2とSTART要素の減算を行いたいとこのような期待される結果は、あろうこと:followiと
values1 = group.loc[group['AID'] == 1]["START"]
values2 = group.loc[group['AID'] == 2]["START"]
:
-11136 - (-11137) = 1
-11121 - (-11114) =-7
-11034 - (-11032) =-2
Nan - (-11002) = NaN
だから私は2つのグループを抽出しましたNG結果:
71 -11136
74 -11121
78 -11034
Name: START, dtype: int64
79 -11137
83 -11114
86 -11032
88 -11002
Name: START, dtype: int64
と単純な引き算しました:
values1-values2
をしかし、私はすべてのNaNを得た:
71 NaN
74 NaN
78 NaN
79 NaN
83 NaN
86 NaN
私は気づいたが、その私が同じAIDグループからのデータを使用している場合(例えば、 START-END)、私は正しい答えを得る。 AIDグループを「ミックス」するときだけ、NaNが得られます。私はちょうどパンダスを使い始めていますが、私は明らかに何かをここで欠いています。なにか提案を?
try: values1.values - values2.values –
あなたが欠けているのは、Pandasが本質的なデータ整列を行うことです。パンダが両方のデータフレームのインデックスに基づいて減算されることを意味します。行インデックスが整列していないため、数値からNaNまたはNaNを引いた数からNaNを引いた数が得られます。 –
期待される出力は? –