【问题标题】:Get first element of Series without knowing the index [duplicate]在不知道索引的情况下获取系列的第一个元素[重复]
【发布时间】:2023-03-30 18:40:01
【问题描述】:

在没有索引信息的情况下,我可以通过任何方式获得 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 的答案是正确的。你应该接受它。

标签: python pandas dataframe series head


【解决方案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?在这个特定的答案中有一个例子。
猜你喜欢
  • 1970-01-01
  • 2016-11-10
  • 2019-05-11
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 2017-05-24
  • 2022-01-03
  • 2015-01-23
相关资源
最近更新 更多