我有一个如下所示的数据框。

             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

最佳答案

考虑使用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

10-04 21:52