簡體   English   中英

映射數據框中的值

[英]Map values from a dataframe

我有一個數據框,其中包含兩個值之間的對應關系:

在此輸入圖像描述

另一個只包含其中一個變量的列表:

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

我想使映射像:

df[l[0]] 

得到1

df[l[1]] 

得到2

好像它是一本字典,我怎么能這樣做?

你在找這樣的東西嗎?

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]

另一種方式是按Series或按dict映射,但是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM