每列获取最新的非NA值

问题描述 投票:0回答:1

我有一个存储在数据框中的时间序列,想提取每列的最新非NAN值,并将其存储在单行数据框中。

所以我的datraframe看起来如下:

data={  'col1' : [np.nan,np.nan,3], 'col2' : [1,np.nan,np.nan]}
df = pd.DataFrame(data,index=pd.bdate_range(start='01.01.2020',end='01.05.2020'))

并且我想要的输出应该是……。像:

   col1  col2
0     3     1
python dataframe filter nan
1个回答
0
投票

[如果数据集为data.table,则遍历Data.table的子集(.SD),对非NA元素(x[!is.na(x)])进行子集化,并提取具有tail的元素中的最后一个元素。

df1[, lapply(.SD, function(x) tail(x[!is.na(x)],1))]
#   a  b c
#1: 63 57 4
© www.soinside.com 2019 - 2024. All rights reserved.