0
In [139]: pandas.__version__
Out[139]: '0.7.3'

我有两个对齐的系列,DataFrame其中有几个无与伦比的“NaN”。我想打印它们之间的交集,删除所有“NaN”,但没有松散的对齐。也就是说,我想从两个系列中删除我在其中一个系列中找到“NaN”的行。这听起来很简单,但我没有在系列之间对 dropna 进行任何操作,并且不能单独从系列中 dropna。我无法找出正确的 df 函数来执行此操作 - 有几个没有记录。只是一个例子,我想拿这个:

10         NaN     -1.200
11         NaN     -1.324
12    0.000585        NaN
13    0.000573     -1.453
14         NaN     -2.006

并打印:

13    0.000573     -1.453
4

1 回答 1

1

正如我在上面的评论中所写,最好的答案是:

newdf = df1.dropna()[['S', 'JEXP']]

那个dropan来自原始df的一部分,只保留了感兴趣的系列。卡梅尔建议:

newdf = df1.dropna(subset=['S', 'JEXP'])

它也可以工作,并且基于子集列表的 dropan,但是,保留所有其他系列 - 它复制了您的数据集。

于 2012-05-24T13:23:19.543 回答