Ich habe einen Datenrahmen mit nur Float-Daten. Ich möchte grundsätzlich eine neue Spalte erstellen, die den Wert aus einer anderen Spalte erhält, wenn sie eine Bedingung erfüllt, und den Wert einer anderen Spalte, wenn dies nicht der Fall ist. Alle meine Spalten sind vom Float-Typ.IF-Anweisung Panda Dataframe: Der Wahrheitswert einer Serie ist mehrdeutig
for col in list_scenarios:
df_merged['in_scenario_'+ col] = 1.0
print(df_merged['in_scenario_' + col])
if df_merged[col].shift(1)== 1.0:
df_merged['in_scenario_' + col] = df_merged['in_scenario_'+ col].shift(1)*df_merged[asset +'_r']
else:
df_merged['in_scenario_' + col] = df_merged['in_scenario_'+ col].shift(1)
print(df_merged['in_scenario_' + col])
bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2017.3.1\helpers\pydev\pydev_run_in_console.py", line 52, in run_file
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files\JetBrains\PyCharm 2017.3.1\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/Main/PycharmProjects/Macrobond_API/scenario testing.py", line 268, in <module>
if df_merged[col].shift(1)== 1.0:
File "C:\Users\Main\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\generic.py", line 1121, in __nonzero__
.format(self.__class__.__name__))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
ich nicht herausfinden können, was nicht eindeutig ist.
Dank
My dataframe looks like this (month year are indices)
sp500_500 USA MEXICO sp500_500_r
month year
6 2017 2423.41 1.0 1.0 0.004814
7 2017 2470.30 1.0 1.0 0.019349
8 2017 2471.65 1.0 1.0 0.000546
Warum verwenden Sie kein verschachteltes 'np.where'? – user32185