我有一个数据框df看起来像:

    id              location    grain
0   BBG.XETR.AD.S       XETR    16.545
1   BBG.XLON.VB.S       XLON    6.2154
2   BBG.XLON.HF.S       XLON    NaN
3   BBG.XLON.RE.S       XLON    NaN
4   BBG.XLON.LL.S       XLON    NaN
5   BBG.XLON.AN.S       XLON    3.215
6   BBG.XLON.TR.S       XLON    NaN
7   BBG.XLON.VO.S       XLON    NaN


实际上,该数据帧将更大。我想遍历此数据帧,返回'grain'值,但我只对“ grain”列中具有值(而不是NaN)的行感兴趣。因此,仅当我遍历数据框时返回以下值:

16.545
6.2154
3.215


我可以使用以下方法遍历数据框:

for staticidx, row in df.iterrows():
            value= row['grain']


但这会为所有行(包括具有NaN值的行)返回一个值。有没有办法从数据框中删除NaN行,或者跳过粒度等于NaN的数据框中的行?

非常感谢

最佳答案

您可以在dropna中指定要作为数据子集的列的列表:


  子集:类数组
      沿其他轴考虑的标签,例如如果您要删除行
      这些将是要包括的列的列表


>>> df.dropna(subset=['grain'])
              id location    grain
0  BBG.XETR.AD.S     XETR  16.5450
1  BBG.XLON.VB.S     XLON   6.2154
5  BBG.XLON.AN.S     XLON   3.2150

09-12 13:37