如何从 Pandas 系列或数据框中删除 MultiIndex“列”的子集?

问题描述 投票:0回答:1

使用

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
    
python pandas dataframe series
1个回答
0
投票

level=...

方法中有
pandas.DataFrame.drop()
参数,请参阅此处
文档

© www.soinside.com 2019 - 2024. All rights reserved.