有人可以帮我解决一个熊猫问题吗?我有一个时间序列数据框,如:
GOOG AAPL
2010-12-09 16:00:00 591.50 551
2010-12-10 16:00:00 592.21 523
2010-12-13 16:00:00 594.62 578
2010-12-14 16:00:00 594.91 567
2010-12-15 16:00:00 590.30 577
...
我需要遍历每个时间戳并测试AAPL是否为> 570.如果是,那么我想打印该条目的AAPL的日期和价格。这可能吗?
答案 0 :(得分:3)
不需要任何循环,pandas
构建numpy
的主要好处之一是它可以轻松地在整个列上运行。它很简单:
df['AAPL'][df['AAPL'] > 570]
输出:
2010-12-13 16:00:00 578
2010-12-15 16:00:00 577
Name: AAPL, dtype: int64
答案 1 :(得分:1)
啊哈,我明白了:
你可以做的是因为它是建立在numpy之上的是:
my_dataframe[my_dataframe.AAPL > 570]
你差不多完成了。 从这里您可以获得与AAPL相对应的所有行> 570,现在它只是打印出你需要的值:
valid_rows = my_dataframe[my_dataframe.AAPL > 570]
for row in valid_rows.to_records():
print row[1],row[2]
dataframe.where可用于搜索整个帧。 我忘记了大熊猫很容易引用列。