[英]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.