2017-06-08 13 views
2

列内のリストとその行の特定の整数値を持つ別の列を持つデータフレームがあります。私は他の列内のリストから特定の値を抽出するために、この整数値を使用したい:pandasデータフレーム列の整数を使用して、別の列内のリストから特定の値を抽出します。

DF:

list           val 
1 ['mohamed', 'adam', 'paul', 'dave']   3 
2 ['dave', 'fred']        0 
3 ['john', 'dave', 'jane']      1 
4 ['dave']          0 

これはによって作成されました:私は取得しようとすると、

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) 

私のリストのうちdaveの値は、エラーが発生します:

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(). 

ただし、私がした場合:

df['list'].str[df[1]] 

この整数を使用してリスト内の値を取得できます。私はこの価値をどのように得ることができますか?あなたが行うことができます

答えて

1

df.apply(lambda x: x['list'][x['value']], axis=1) 
1
df['name'] = [row[0][row[1]] for ix, row in df.iterrows()] 
関連する問題