2017-12-14 1 views
1

私たちのインターンはpandasのコードを書いていて、エラーを見つけることができないと訴えていますが、結果は期待通りではありません。私はいくつかの私は、この中に問題を薄くし予期しない動作使ってパンダdataframe.set_value()Pandas set_value()insert float weirdが奇妙に動作する

に走ったので、驚くべきことに、私は、どちらか彼を助けることができなかった:110以上 挿入float値またはそのデータフレームに間違った負の値を生成します。

タプルのリストに重要な値を抽出しました。

構造:ここで[(index_of_df_insert_row, float_value_to_insert), ...]

が重要なコードスニペットです:

print(replace_values) 

for index, value in replace_values: 
    grouped_to_data.set_value(index, "Realized_Time_Indirect", value) 
    print(value + " > ") 
    print(grouped_to_data.iloc[index]["Realized_Time_Indirect"]) 
    print() 

そしてここでは、サンプル出力です:

5.6 > 
5 

8.5 > 
8 

43.0 > 
43 

23.0 > 
23 

<<<<<<<<<<<WHY?>>>>>>>>>>> 

147.5 > 
-109 

<<<<<<<<<<<WHY?>>>>>>>>>>> 

28.0 > 
28 

28.5 > 
28 

39.32 > 
39 

17.0 > 
17 

86.30000000000001 > 
86 

58.5 > 
58 
+3

SET_VALUEは、パンダの現在のバージョンでは廃止されました。次に、set_valueはインデックスラベルを使用し、ilocはインデックス位置を使用していますが、それらは同じですか? 'print(group_to_data.loc [index、" Realized_Time_Indirect "])'のようなものを望まないのは本当ですか? –

+0

どのように簡単に私はドキュメントでそれをスキップしました...ありがとう、私は自分のコードで関数を使用していない、私は正しい答えとしてマークします。 –

答えて

1

まず、set_valueはパンダの現在のバージョンでは廃止されました。次にset_valueはインデックスラベルを使用し、ilocはインデックス位置を使用していますが、データフレーム内で同じですか?あなたのインデックスがゼロで始まっていない場合は、潜在的に異なる行を見ている可能性があります。

は、のではなく、このような何かを試してみましょう:

print(group_to_data.loc[index,"Realized_Time_Indirect"]) 
関連する問題