Ich habe ein Datenframe mit einer Liste innerhalb einer Spalte und eine andere Spalte mit einem bestimmten ganzzahligen Wert für diese Zeile. Ich möchte diesen Integer-Wert verwenden, um einen bestimmten Wert aus der Liste in der anderen Spalte zu extrahieren:Verwenden Sie eine Ganzzahl in einer Pandas-Datenframe-Spalte, um einen bestimmten Wert aus einer Liste in einer anderen Spalte zu extrahieren
df:
list val
1 ['mohamed', 'adam', 'paul', 'dave'] 3
2 ['dave', 'fred'] 0
3 ['john', 'dave', 'jane'] 1
4 ['dave'] 0
diese erstellt wurde:
df = df.loc[df['unsplit_list'].str.contains('dave')]
df['list'] = df['unsplit_list'].str.split('|')
df['val'] = df['list'].apply(lambda lst: [i for i, x in enumerate(lst) if 'dave' in x][0])
df['val'] = df['val'].astype(int)
wenn ich versuche, zu erhalten der Wert für dave aus meiner Liste, kommt es mit einem Fehler auf:
df['list'].str[df['val']]
>>
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
aber wenn ich tue:
df['list'].str[df[1]]
dann wäre ich in der Lage, den Wert in der Liste mit dieser ganzen Zahl zu erhalten. Wie kann ich diesen Wert erhalten, den ich will?