慕碼人8056858
2021-12-16 15:56:13
我有一個(gè)表單的 DataFrameeqt_code ACA_FP AC_FP AI_FPBDATE 2015-01-01 NaN NaN NaN2015-01-02 NaN NaN NaN2015-01-05 1 NaN NaN2015-01-06 NaN NaN NaN2015-01-07 NaN NaN NaN2015-01-08 NaN 0.2 NaN2015-01-09 NaN NaN NaN2015-01-12 5 NaN NaN2015-01-13 NaN NaN NaN2015-01-14 NaN NaN NaN2015-01-15 NaN NaN NaN而且我希望每個(gè)月都獲得每列的最后一個(gè)非 NaN 值(如果沒有有效值,則為 NaN )。因此導(dǎo)致類似eqt_code ACA_FP AC_FP AI_FPBDATE 2015-01-31 5 0.2 NaN2015-02-28 10 1 32015-03-31 NaN NaN 32015-04-30 10 1 3我有兩個(gè)想法來執(zhí)行此操作:做一個(gè)ffill到月底的限制。類似的東西df.ffill(<add good thing here>).resample('M').last()。last_valid_index與 一起使用resample('M')。
2 回答

森林海
TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
使用 resample
df.resample('M').last()
Out[82]:
ACA_FP AC_FP AI_FP
eqt_code
2015-01-31 1.0 0.2 NaN

慕田峪7331174
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
使用groupby和last:
# Do this if the index isn't a DatetimeIndex.
# df.index = pd.to_datetime(df.index)
df.groupby(df.index + pd.offsets.MonthEnd(0)).last()
ACA_FP AC_FP AI_FP
BDATE
2015-01-31 5.0 0.2 NaN
...
添加回答
舉報(bào)
0/150
提交
取消