使用
DataFrame
迭代 pandas iterrows()
会生成一系列索引 Series
对(元组)。
for timestamp, row in df.iterrows():
我知道
iterrows()
很慢。暂时忽略这个问题 -
某些返回的行将包含
None
或 NaN
值。我想删除这些。 (不是来自 DataFrame
,而是来自
iterrows()
返回的每行的副本。)我还想删除“列”的子集。列以 2 级 MultiIndex 命名。
DataFrame 的外观如下:
AACT ABILF ...
open high low close open high low close ...
timestamp ...
2022-01-04 00:00:00 NaN NaN NaN NaN NaN NaN NaN NaN ...
2022-01-04 00:01:00 NaN NaN NaN NaN NaN NaN NaN NaN ...
2022-01-04 00:02:00 NaN NaN NaN NaN NaN NaN NaN NaN ...
2022-01-04 00:03:00 NaN NaN NaN NaN NaN NaN NaN NaN ...
2022-01-04 00:04:00 NaN NaN NaN NaN NaN NaN NaN NaN ...
这里所有的值发生都是NaN,但一般情况并非如此。
因为我不知道如何解决这个问题,这里有一些伪代码:
for timestamp, row in df.iterrows():
row.drop([('AACT', 'open'), ('AACT', 'high'), ('AACT', 'low')])
row.drop([('ABILF', 'open'), ('ABILF', 'high'), ('ABILF', 'low')])
row.dropna()
# remaining data is `('AACT', 'close')` and `('ABILF', 'close')`
# iff values in this `Series` are non-NaN