如何通过将列的值与没有iterrows的字符串进行比较来获取数据帧的索引

时间:2017-07-05 16:23:18

标签: python pandas

我有一个包含大量行的数据框(df):

0   A     B     C     D     E
1   ax    92    47    32    89
2   av    12    41    26    87
3   bn    54    87    98    09

的字符串=' AV' 我需要用A = av找到df的索引 它需要返回2

我尝试使用df.iterrows(),但是有大量行需要花费大量时间或崩溃

没有iterrows可以这样做吗?

2 个答案:

答案 0 :(得分:2)

使用布尔过滤和.loc

从列2

访问值'0'的三种方法
In [377]: df.loc[df['A'] == 'av', '0']
Out[377]:
1    2
Name: 0, dtype: int64

In [378]: df.loc[df['A'] == 'av', '0'].item()
Out[378]: 2L

In [379]: df.loc[df['A'] == 'av', '0'].iloc[0]
Out[379]: 2

答案 1 :(得分:1)

index=df.loc[df['A'] == 'av', '0'].iloc[0]

此技术称为布尔Masking.index将具有值2 https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html 请参阅Pandas文档。熊猫有很好的记录!