在不知道索引的情况下获取系列的第一个元素[重复]
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# - 如何在不使用索引器的情况下获取自定义集合的第一项?
如何在不调用索引函数或任何内置函数的情况下获取列表中的索引?