Die folgende Funktion verwendet:Python Pandas: Funktion funktioniert nicht, wenn mit apply()
def func(x):
for k in x['slices']:
for j in k:
print(x['low'].iloc[j])
in folgenden Weise angewandt funktioniert:
func(test)
aber wie folgt nicht:
test.apply(func, axis=1)
Können Sie feststellen, warum?
EDIT: Ich habe den Druck nur für Debug-Zwecke: die Funktion verwendet werden:
def func(x):
result=[]
for k in x:
for j in k:
result.append(x['low'].iloc[j])
return result
die auch nicht
Unter den Elementen, die Daten rekonstruiert funktionierten.
df = pd.DataFrame(dict, columns=["low", "slices"])
dict = {'low': {0: 1207.25,
1: 1207.5,
2: 1205.75,
3: 1206.0,
4: 1201.0,
5: 1202.75,
6: 1203.75},
'slices': {0: [slice(1, 2, None)],
1: [slice(1, 3, None), slice(2, 3, None)],
2: [slice(1, 4, None), slice(2, 4, None), slice(3, 4, None)],
3: [slice(1, 5, None),
slice(2, 5, None),
slice(3, 5, None),
slice(4, 5, None)],
4: [slice(1, 6, None),
slice(2, 6, None),
slice(3, 6, None),
slice(4, 6, None),
slice(5, 6, None)],
5: [slice(1, 7, None),
slice(2, 7, None),
slice(3, 7, None),
slice(4, 7, None),
slice(5, 7, None),
slice(6, 7, None)],
6: [slice(1, 8, None),
slice(2, 8, None),
slice(3, 8, None),
slice(4, 8, None),
slice(5, 8, None),
slice(6, 8, None),
slice(7, 8, None)]}}
Was ist das beobachtete Verhalten, wenn Sie sich bewerben verwenden? Gibt es einen Fehler? Druckt es leere Zeichenfolgen? Weitere Informationen helfen, die Frage zu beantworten. – Apollo2020
@dave Bei der Verwendung von apply() ist der zurückgegebene Fehler: 'eine Ganzzahl ist erforderlich' und' KeyError: ('Slices', 'bei Index-Slices aufgetreten') '. Beachten Sie, dass bei Verwendung von 'func (test)' 'die korrekte Ausgabe ohne Fehlermeldung zurückgegeben wird. –
@jimbasquiat Wie soll das Ergebnis aussehen, eine neue 'Serie' mit Listen aus den Slices? –