Pandas:仅在数据帧的开头和结尾删除 NaN

Pandas: Remove NaN only at beginning and end of dataframe(Pandas:仅在数据帧的开头和结尾删除 NaN)
本文介绍了Pandas:仅在数据帧的开头和结尾删除 NaN的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一个看起来像这样的 pandas DataFrame:

I've got a pandas DataFrame that looks like this:

       sum
1948   NaN
1949   NaN
1950     5
1951     3
1952   NaN
1953     4
1954     8
1955   NaN

我想只在开头和结尾截断 NaN(即只保留从 1950 到 1954 的值,包括 NaN).我已经尝试过 .isnull()dropna(),但不知何故我找不到合适的解决方案.有人可以帮忙吗?

and I would like to cut off the NaNs at the beginning and at the end ONLY (i.e. only the values incl. NaN from 1950 to 1954 should remain). I already tried .isnull() and dropna(), but somehow I couldn't find a proper solution. Can anyone help?

推荐答案

使用内置的first_valid_indexlast_valid_index 它们是专门为此设计的,并对你的 df 进行切片:

Use the built in first_valid_index and last_valid_index they are designed specifically for this and slice your df:

In [5]:

first_idx = df.first_valid_index()
last_idx = df.last_valid_index()
print(first_idx, last_idx)
df.loc[first_idx:last_idx]
1950 1954
Out[5]:
      sum
1950    5
1951    3
1952  NaN
1953    4
1954    8

这篇关于Pandas:仅在数据帧的开头和结尾删除 NaN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)