キーボードに頭をぶつけすぎている時間帯です。アドバイスをいただければ幸いです。私の全体的な目標は、ギャップのある時間ごとの気温のデータファイルを取り込むことです。近くのサイトからの温度を使用した線形回帰を使用して、これらのギャップを埋めたいと考えています。しかし、私はこれを BY YEAR と BY MONTH でやりたいと思っています。ここにいる人々の助けを借りて、私はこれの多くを行うことができました. 今、私は線形回帰関数をBY YEAR AND MONTHのように適用しました
Corr_grouped=DF_grouped.apply(lambda x: stats.linregress(x [Labels[0]], x [Labels[3]]))
これにより、勾配、切片、r_value、p_value、std_err の出力があり、このように表示される次のものが生成されました。
> 2010 1 (0.806190897504, 5.75672188581, 0.901179913935...
> 2 (0.739906365408, 8.05204746237, 0.894050112908...
> 3 (0.773199101365, 6.88505178697, 0.898475211997... ...
> 10 (0.87497855294, 4.10227036556, 0.939948762031,...
> 11 (0.793072407801, 6.38604194806, 0.923659962858...
私は一日中、見つけられない正確な解決策を読んでいます。ここで私の質問は、これを元のデータ フレームに適用する方法です。入力として列 3 を使用して元のデータの各行に線形回帰 y=mx+c を適用する DF の新しい列が必要ですが、異なる特定の係数 (勾配、切片) を使用してそれを行います。年と月ごとに。どんなアイデアでも大歓迎です:)乾杯ジェイソン
編集:素晴らしい。DFはこんな感じ。複数年の 30 分ごとのタイムスタンプがあります。1 つまたは複数の間隔のギャップ (NaN) があります。近くの駅 (T_nearby) との関係を使用して、元の列 (T_original) のギャップを埋める必要があります。しかし、それは単純な代用ではありません。多くの場合、サイトはある程度離れており、温度は相関していますが、同じではありません (つまり、一方が 2℃高い場合があります)。SO T_nearby ステーションを最初に調整してから、ギャップを埋めるために使用する必要があります。
T_original T_nearby
2010-01-01 00:00:00 25.87873 25.4
2010-01-01 00:30:00 25.73089 25.4
2010-01-01 01:00:00 25.56144 25.4
2010-01-01 01:30:00 NaN 25.4
2010-01-01 02:00:00 25.24789 25.6
2010-01-01 02:30:00 25.17758 25.4
2010-01-01 03:00:00 NaN 25.6
2010-01-01 03:30:00 NaN 25.6
2010-01-01 04:00:00 25.07633 25.6
2010-01-01 04:30:00 24.99211 25.5
YEAR と MONTH で分析を分類したいと思います。したがって、各年の各月について、T_original と T_nearby の間の線形回帰適合を計算します。これにより、線形回帰パラメータを持つグループ化されたオブジェクトが得られます。たとえば、2010 年と 1 月の切片は 5.75 で、勾配は 0.806 です。
そこで、この関係を Year=2010 と Month=1 のすべてに適用して、次のようにしたいと思います。次に、DF の残りの部分について、各年の各月に同じアプローチを適用します。
T_original T_nearby T_adjusted
1/01/2010 0:00 25.87873 25.4 26.2224
1/01/2010 0:30 25.73089 25.4 26.2224
1/01/2010 1:00 25.56144 25.4 26.2224
1/01/2010 1:30 NaN 25.4 26.2224
1/01/2010 2:00 25.24789 25.6 26.3836
1/01/2010 2:30 25.17758 25.4 26.2224
1/01/2010 3:00 NaN 25.6 26.3836
1/01/2010 3:30 NaN 25.6 26.3836
1/01/2010 4:00 25.07633 25.6 26.3836
1/01/2010 4:30 24.99211 25.5 26.303
次に、T_adjusted 列を使用して、T_original のギャップを埋めます。ありがとうジェイソン