如何获得pandas中的行索引?

时间:2017-05-13 07:39:38

标签: python pandas

我的数据框如下所示。

             customers       ...
Date                                             
2006-01-03          98       ...
2006-01-04         120       ...   
2006-01-05         103       ...  
2006-01-06          95       ... 
2006-01-09         103       ...

我希望获得超过100的客户数量的行并打印出来。

for x in range(len(df)):
    if df['customers'].iloc[x] > 100:
        print(df['customers'].iloc[x]) 

但我不知道如何打印符合条件的行的日期(索引)。我的目标是打印出这样的:

2006-01-04
120
2006-01-05
103
2006-01-09
103

3 个答案:

答案 0 :(得分:1)

考虑使用query()

print(df)
         Date  customers
0  2006-01-03         98
1  2006-01-04        120
2  2006-01-05        103
3  2006-01-06         95
4  2006-01-09        103

df.query('customers > 100')
         Date  customers
1  2006-01-04        120
2  2006-01-05        103
4  2006-01-09        103

要获得您指定的确切输出格式,请迭代query()结果:

for date, customer in df.query('customers > 100').values:
    print(date)
    print(customer)

2006-01-04
120
2006-01-05
103
2006-01-09
103

答案 1 :(得分:1)

df [df ['customer']> 100]将完成这项工作...... 虽然你可以在stackoverflow上找到很多类似的答案

答案 2 :(得分:0)

使用循环,您可以使用df.index [x]

获取输出中的数据
for x in range(len(df)):
    if df['customers'].iloc[x] > 100:
        print(df.index[x])
        print(df['customers'].iloc[x])

2006-01-04
120
2006-01-05
103
2006-01-09
103