列構造を持つ pandas データフレーム (df) があります。
month a b c d
このデータフレームには、たとえば1月、2月、3月、4月のデータがあります。A、B、C、Dは数値列です。Feb の月の場合、列 A を再計算してデータフレームで更新したい、つまり月 = Feb、A = B + C + D の場合
私が使用したコード:
df[df['month']=='Feb']['A']=df[df['month']=='Feb']['B'] + df[df['month']=='Feb']['C'] + df[df['month']=='Feb']['D']
これはエラーなしで実行されましたが、2 月の列 A の値は変更されませんでした。コンソールでは、次のメッセージが表示されました。
DataFrame からのスライスのコピーに値を設定しようとしています。
代わりに .loc[row_indexer,col_indexer] = value を使用してみてください
.loc を使用しようとしましたが、現在作業中のデータフレームを使用.reset_index()
していましたが、インデックスを設定して .loc を使用する方法がわかりません。ドキュメントに従いましたが、明確ではありません。ここで私を助けてくれませんか?これはデータフレームの例です:
import pandas as pd import numpy as np
dates = pd.date_range('1/1/2000', periods=8)
df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D'])
2000-01-03 という 1 つの日付を更新したいと思います。リアルタイム データであるため、データのスニペットを提供できません。