0
私は以下のようなデータフレームを持っています。私は計算をして、現在のデータフレームに新しい列として結果を追加したいと思います。対応する列をデータフレームのパンダに結合
A, B # this is my df, a csv file
1, 2
3, 3
7, 6
13, 14
以下は私が試したコードです。
for i in range(0,len(df.index)+1,1):
if len(df.index)-1 == i:
df['C'] = str(df.iloc[i]['A']/df.iloc[i]['B'])
else:
df['C'] = str((df.iloc[i+1]['A'] - df.iloc[i]['A'])/(df.iloc[i+1]['B'] - df.iloc[i]['B'])) # I need string as dtype
df.to_csv(Out, index = False)
これは最終的なループの結果を示していますが、計算結果によっては結果が一致しません。
A B C
1 2 2
3 3 1.33
7 6 0.75
13 14 0.93 # It is the result I'd like to see.
誰でも修正方法を知っていますか?前もって感謝します!
マイナス記号の代わりに 'sub'を使用し、' fill_value = 0'というキーワード引数を指定すると、すべて1行で入力できます。例えば(df.B、fill_value = 0) ' – root
@root、yes、実際にはもっとエレガントです、ありがとうございました!私は答えを更新しました – MaxU
問題はありません。私はあなたの答えを見てまで、私は 'fill_value'を使ってより大規模な解決策を持っていました。 – root