在不知道索引的情况下获取系列的第一个元素[重复]

Posted

技术标签:

【中文标题】在不知道索引的情况下获取系列的第一个元素[重复]【英文标题】:Get first element of Series without knowing the index [duplicate] 【发布时间】:2014-08-08 00:22:51 【问题描述】:

在没有索引信息的情况下,我可以通过任何方式获得 Seires 的第一个元素吗?

例如,我们有一个系列

    import pandas as pd
    key='MCS096'
    SUBJECTS=pd.DataFrame('ID':Series([146],index=[145]),\
                   'study':Series(['MCS'],index=[145]),\
                   'center':Series(['Mag'],index=[145]),\
                   'initials':Series(['MCS096'],index=[145])
                   )

打印出主题:

    print (SUBJECTS[SUBJECTS.initials==key]['ID'])
    145    146
    Name: ID, dtype: int64

如何在不使用索引 145 的情况下获取此处的值 146?

非常感谢

【问题讨论】:

只需(SUBJECTS[SUBJECTS.initials==key]['ID']).values[0] @Andy Hayden 的答案是正确的。你应该接受它。 【参考方案1】:

使用 iloc 按位置(而不是标签)访问:

In [11]: df = pd.DataFrame([[1, 2], [3, 4]], ['a', 'b'], ['A', 'B'])

In [12]: df
Out[12]: 
   A  B
a  1  2
b  3  4

In [13]: df.iloc[0]  # first row in a DataFrame
Out[13]: 
A    1
B    2
Name: a, dtype: int64

In [14]: df['A'].iloc[0]  # first item in a Series (Column)
Out[14]: 1

【讨论】:

如何使用 Series 而不是 DataFrame。我们必须先转换系列吗? 抱歉,我在另一个项目中使用它,df['A'].iloc[0] 给了我一个错误,但 df.iloc[0]['A'] 出于某种原因没有。 @sobio35 是的,这实际上应该不起作用,因为df['A'] 创建了一个系列并且在这个 iloc 上不起作用。但反过来说,正如您所描述的,它可以工作,因为 iloc 在整个 df 上执行,然后选择 Series ['A']。 如果你想在一个系列中做到这一点,你也可以这样做:ser.reset_index(drop=True,inplace=True); ser[0] @GenericWevers 为什么你认为iloc 不适用于Series?在这个特定的答案中有一个例子。

以上是关于在不知道索引的情况下获取系列的第一个元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C# - 如何在不使用索引器的情况下获取自定义集合的第一项?

如何在不调用索引函数或任何内置函数的情况下获取列表中的索引?

如何使用 Firebase 实时数据库在不知道 Android 索引的情况下更新 ArrayList 中的元素?

在不使用图表的情况下以最小产品从第一个索引到最后一个索引?

在不循环多维数组PHP的情况下获取第一个子数组键[重复]

如何在不合并索引的情况下连接具有不同多索引的两个数据帧?