如何在pandas.DataFrame中找到值的位置?

时间:2015-02-03 22:17:08

标签: python arrays pandas

我想搜索' row3'在下面的DataFrame的索引中,对于从零开始的数组,它应该是2。

import numpy as np
import pandas as pd

rownames = ['row1', 'row2', 'row3', 'row4', 'row5']
colnames = ['col1', 'col2', 'col3', 'col4']

# Create a 5 row by 4 column array of integers from 0 to 19
integers = np.arange(20).reshape((5, 4))
table = pd.DataFrame(integers, index=rownames, columns=colnames)

是否有一个函数可以返回' row3'的行号? 提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您可以使用Index.get_locdocs):

>>> table.index.get_loc("row3")
2
>>> table.iloc[table.index.get_loc("row3")]
col1     8
col2     9
col3    10
col4    11
Name: row3, dtype: int64
>>> table.loc["row3"]
col1     8
col2     9
col3    10
col4    11
Name: row3, dtype: int64

但这是一种不同寻常的访问模式 - 我自己从不需要它。

答案 1 :(得分:0)

您可能只需找到从 'row1' 到 'row3' 的 df 长度并将其减 1(如果您从 0 开始计数)。

s = 'row3'
print(s,'number is', len(table['row1':s]) - 1)

返回

row3 number is 2