[英]Obtaining the index of the first occurrence in a column in a dataframe
提示:本站為國內最大中英文翻譯問答網站,提供中英文對照查看,鼠標放在中文字句上可顯示英文原文。
我有以下 dataframe:
import pandas as pd
d = {'Stages': ['Stage 1', 'Stage 2', 'Stage 2', 'Stage 2', 'Stage 3', 'Stage 1'], 'Start(s)': [0, 630, 780, 840, 900, 930], 'End(s)': [630, 780, 840, 900, 930, 960]}
df = pd.DataFrame(data=d)
Stages Start(s) End(s)
0 Stage 1 0 630
1 Stage 2 630 780
2 Stage 2 780 840
3 Stage 2 840 900
4 Stage 3 900 930
5 Stage 1 930 960
我想獲取第 2 階段首次出現在“階段”列中的索引。在此示例中,它將是 1。
我嘗試閱讀有關類似問題的討論,但無法實施。
如果始終存在至少一個Stage 2
,請使用Series.idxmax
比較第一個值:
print (df['Stages'].eq('Stage 2').idxmax())
1
如果可能不存在像Stage 8
這樣的next
和iter
技巧:
print (next(iter(df.index[df['Stages'].eq('Stage 8')]), 'not exist'))
not exist
print (next(iter(df.index[df['Stages'].eq('Stage 2')]), 'not exist'))
1
因為如果不存在匹配值idxmax
返回第一個False
值:
print (df['Stages'].eq('Stage 8').idxmax())
0
另一個想法是通過Series.where
和Series.first_valid_index
測試不缺失值的第一個索引:
print (df['Stages'].where(df['Stages'].eq('Stage 8')).first_valid_index())
None
print (df['Stages'].where(df['Stages'].eq('Stage 2')).first_valid_index())
1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.