繁体   English   中英

删除包含NaN的Pandas Dataframe的前几行

[英]Drop leading rows of Pandas Dataframe containing NaN

在清理时间序列的Pandas Dataframe之前,我想删除某些列中包含NaN的顶部行。

我想遍历数据帧的开头,并删除满足条件的行,其中column为NaN 我在下面的数据框称为“火车”,并包含两列-“日期”和“最高温度(摄氏度)”。 我将日期设置为索引。 最初的20个奇数行在“最高温度(摄氏度)”中包含NaN

#Drop NaN values at start of dataframe

for date,row in train.iterrows():
  print(date)
  if train.loc[date,'Maximum temperature (Degree C)']==np.nan:
      train.drop(index=date, inplace=True)
  else:
    break

我希望代码从数据帧的开头删除行,但是我的if语句不会获取NaN ,因此它会在第一行之后中断。

您可以使用first_valid_index()来代替丢弃,而可以按如下方式使用

import pandas as pd 

# dataframe  
df = pd.DataFrame({"A":[None, None, 2, 4, 5], 
                   "B":[None, None, None, 44, 2], 
                   "C":[None, None, None, 1, 5]}) 


df.C.first_valid_index()

输出:

3

然后使用

df.loc[2:]

要么

df[df.C.first_valid_index():]

输出:

     A    B    C
3   4.0  44.0  1.0
4   5.0  2.0   5.0

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM