首页 > 解决方案 > 最后一个有效项目的子集df - pandas

问题描述

我正在尝试使用最后一个特定值对 df 进行子集化。使用下面,我想在时间X出现之前对每一行进行子集化Item

import pandas as pd

df = pd.DataFrame({              
    'Item' : ['Y','X','B','X','A','Y'], 
    'Number' : [2,3,2,4,2,1],                          
    })

df_out = df[df['Item'] == 'X'].last_valid_index() 

预期输出:

  Item  Number
0    Y       2
1    X       3
2    B       2
3    X       4

标签: pythonpandas

解决方案


尝试使用iloc

a = df[df['Item'] == 'X'].last_valid_index()
print(df.iloc[:a + 1])

输出:

  Item  Number
0    Y       2
1    X       3
2    B       2
3    X       4

推荐阅读