VLOOKUP等效函数在pandas DataFrame中查找值

Ale*_*ont 3 lookup pandas

我有一个pandas数据帧,具有以下结构:

DF_Cell, DF_Site
C1,A
C2,A
C3,B
C4,B
C5,B
Run Code Online (Sandbox Code Playgroud)

我有一个很长的循环(1亿次迭代),其中我逐个处理对应于DataFrame中"DF_Cell"列的字符串(第一次循环迭代创建C1,第二次迭代创建C2等等).

我想在数据帧中查找与循环中处理的单元格(DF_Cell)对应的DF_Site.

我能想到的一种方法是将处理过的单元格放在一个单元格的DataFrame中然后对其进行左合并,但这对于这样的大数据来说效率太低了.

有没有更好的办法?

And*_*den 6

也许您想将DF_Cell设置为索引*:

In [11]: df = pd.read_csv('foo.csv', index_col='DF_Cell')
         # or df.set_index('DF_Cell', inplace=True)

In [12]: df
Out[12]: 
        DF_Site
DF_Cell        
C1            A
C2            A
C3            B
C4            B
C5            B
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用loc来引用行或特定条目:

In [13]: df.loc['C1']
Out[13]: 
DF_Site    A
Name: C1, dtype: object

In [14]: df.loc['C1', 'DF_Site']
Out[14]: 'A'
Run Code Online (Sandbox Code Playgroud)

*假设这有两列,你可以使用squeeze=True.