Python 3.x 使用dataframe值作为列表的索引
我有一个数据框和一个列表,设置如下:Python 3.x 使用dataframe值作为列表的索引,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我有一个数据框和一个列表,设置如下: index list_index sample1 1 sample2 2 sample3 4 values = [-0.5, -23, 0, 15, 100] 我试图在dataframe中创建一个新列,该列采用列表索引和值列表。例如: index list_index val sample1 1 -23 sample2 2 0 sample3 5 100 我的代码
index list_index
sample1 1
sample2 2
sample3 4
values = [-0.5, -23, 0, 15, 100]
我试图在dataframe中创建一个新列,该列采用列表索引和值列表。例如:
index list_index val
sample1 1 -23
sample2 2 0
sample3 5 100
我的代码是:
df['val'] = values[df['list_index']]
我得到TypeError:列表索引必须是整数或片而不是序列。我将使用
pandas.Series.apply
示例代码:
import pandas as pd
df = pd.DataFrame({'A' : [1,3,5]})
v = [0, 1, 0, 1, 0, 1]
df['B'] = df['A'].apply(lambda x: v[x])
我认为,你所寻找的结果是:
Out[7]:
A B
0 1 1
1 3 1
2 5 1
对于您的代码,请执行以下操作
df['val']=df['list_index'].应用(lambda x:values[x])
基本上,您得到的是上述错误,因为您不是逐个元素传递列表元素的索引,而是作为一个不起作用的序列。np.array(values)[df.list\u index]