Ich habe Daten in einem Format ähnlich dem von df (siehe unten). Mein Problem ist jetzt, dass ich die Daten in avg_value mit dem Durchschnittswert für die letzten "days_back" Tage füllen möchte.Aktualisierung eines Teils der Spalte im Pandas-Datenrahmen mit einem Numpy-Array
import numpy as np
import pandas as pd
df = pd.DataFrame({ 'DAY': np.append(np.ones(24),
[np.multiply(np.ones(24), 2),
np.multiply(np.ones(24), 3),
np.multiply(np.ones(24), 4)]),
'value': np.random.randn(1, 24*4)[0],
'avg_value': 0.},
index=pd.date_range('20150101', periods=24*4, freq="H"))
print(df.tail())
DAY avg_value value
2015-01-04 19:00:00 4.0 0.0 0.685153
2015-01-04 20:00:00 4.0 0.0 0.670713
2015-01-04 21:00:00 4.0 0.0 -0.519541
2015-01-04 22:00:00 4.0 0.0 0.795619
2015-01-04 23:00:00 4.0 0.0 -0.150966
von R kommen, wäre dies eine einfache Sache zu tun .. Aber wenn ich versuche
df.loc[df["DAY"] == the_day_I_want].avg_value = my_numpy_array
I
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
, als guter Junge So erhalten zu tun Ich bin, ich fahre mit dem folgenden
index_row = df.loc[df["DAY"] == the_day_I_want].index
index_col = df.columns.get_loc("avg_value")
df.loc[index_row, index_col] = my_numpy_array
fort
Aber ich habe immer noch den gleichen Fehler! Ich wette, es gibt eine wirklich einfache Lösung für dieses Problem, aber ich kann es einfach nicht finden:/Jede Hilfe wäre sehr willkommen!
Danke, Mann! Funktioniert wie ein Charme :) Ich kann nicht glauben, dass ich war so nah die ganze Zeit -.- – Murrmel5
Ich denke, es ist super, Sie war in der Nähe, nicht notwendig, ändern Sie eine Menge Code;) Schönen Tag und froh kann helfen! – jezrael