【问题标题】:Get row index from DataFrame row从 DataFrame 行获取行索引
【发布时间】:2016-05-16 06:25:37
【问题描述】:

是否可以在不添加包含行号的额外行的情况下获取DataFrame 行的行号(即“索引值的序号位置”)(索引可以是任意的,即甚至是MultiIndex )?

>>> import pandas as pd
>>> df = pd.DataFrame({'a': [2, 3, 4, 2, 4, 6]})
>>> result = df[df.a > 3]
>>> result.iloc[0]
a    4
Name: 2, dtype: int64
# but how can I get the original row index of iloc[0] in df?

我本可以使用df['row_index'] = range(len(df)) 来保持原始行号,但我想知道 Pandas 是否有内置的方法。

【问题讨论】:

    标签: python pandas indexing


    【解决方案1】:

    访问.name 属性并使用get_loc

    In [10]:
    df.index.get_loc(result.iloc[0].name)
    
    Out[10]:
    2
    

    【讨论】:

    • 不幸的是,这是指原始索引。尝试:df = pd.DataFrame({'a': [2, 3, 4, 2, 4, 6]}, index=[4, 3, 7, 1, 5, 9]);result = df[df.a > 3];result.iloc[0].name 返回7
    • 对不起,你到底在追求什么?索引值的序号位置?
    • 是的,抱歉,“行号”可能具有误导性。
    • 感谢您的编辑。如果我没记错的话,我想应该是df.index.get_loc(result.index[0])...
    • result.index[0]result.iloc[0].name 相同,不同之处在于您显式访问第一个索引元素,而后者访问第一个元素的索引值
    猜你喜欢
    • 1970-01-01
    • 2017-01-19
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多