我的数据框如下所示。
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
答案 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