映射数据框中的值

时间:2017-07-05 01:53:49

标签: pandas dictionary

我有一个数据框,其中包含两个值之间的对应关系:

enter image description here

另一个只包含其中一个变量的列表:

l = ['a','b','c'] 

我想制作如下的映射:

df[l[0]] 

并获得1

df[l[1]] 

并获得2

好像它是一本字典,我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

你在找这样的东西吗?

df.loc[df['key']==l[0], 'value']

返回

0    1
1    1

另一种方法是将df的set_index设为key。

df.set_index('key', inplace = True)
df.loc[l[0]].values[0]

答案 1 :(得分:1)

另一种方式是Seriesdict地图,但必须是key s的唯一值,drop_duplicates会有所帮助:

df = pd.DataFrame({'key':list('aabcc'),
                   'value':[1,1,2,3,3]})

s = df.drop_duplicates('key').set_index('key')['value']
print (s)
key
a    1
b    2
c    3
Name: value, dtype: int64

d = df.drop_duplicates('key').set_index('key')['value'].to_dict()
print (d)
{'c': 3, 'b': 2, 'a': 1}

l = ['a','b','c'] 

print (s[l[0]])
1

print (d[l[1]])
2