データフレーム内のvar Aの5番目と6番目の行ごとに平均をとって、その結果をvar Bという新しい列に入れようとしていますが、NaN
が表示されます。値を正しく返さなかったために結果が出る可能性がありますか?ここでデータフレームに結果が返されない
はサンプルデータです:
PID A
1 0
1 3
1 2
1 6
1 0
1 2
2 3
2 3
2 1
2 4
2 0
2 4
期待される結果:
PID A B
1 0 1
1 3 1
1 2 1
1 6 1
1 0 1
1 2 1
2 3 2
2 3 2
2 1 2
2 4 2
2 0 2
2 4 2
マイコード:
lst1 = df.iloc[5::6, :]
lst2 = df.iloc[4::6, :]
df['B'] = (lst1['A'] + lst2['A'])/2
print(df['B'])
は、スクリプトはエラーなしで実行することができますが、VAR Bがあります空で、NaN
と表示されます。 ご協力いただきありがとうございます!
Thx!インデックスに問題がある場合は、 'reset_index(drop = True)'を使用してインデックスを削除してから平均を取ろうとしますが、 'NaN'は依然として問題です。なぜなのかご存知ですか?ありがとう! – Kay
dfとdfの両方で異なるインデックスとパンダが同じものを必要とする問題があります。したがって 'lst1 = lst1.reset_index(drop = True)'と 'lst1 = lst1.reset_index(drop = True)'が必要です。 – jezrael