我有許多具有以下結(jié)構(gòu)的數(shù)據(jù)框。 TRCODEP 10101 10201 20101 20201 20203 43826 4:00:00 NaN NaN NaN NaN 43827 NaN NaN NaN NaN NaN 43828 NaN 20:00:00 NaN NaN NaN 43829 NaN NaN NaN 20:35:00 NaN 43830 20:45:00 NaN NaN NaN NaN 43829 NaN NaN 02:00:00 NaN NaN對于每個數(shù)據(jù)框,我想創(chuàng)建一個新的數(shù)據(jù)框,以選擇該列中具有非NaN條目的10101行以及前三行。我遇到了麻煩,因為您可能會在10101上面看到多個非NaN條目。而且,即使解決了這個問題,我似乎也無法使用df['10101'].notna().index[0]and來分割數(shù)據(jù)幀df['10101'].notna().index[0]-3。我有什么選擇?
1 回答

慕工程0101907
TA貢獻1887條經(jīng)驗 獲得超5個贊
沒那么難。您可以使用Series.last_valid_index和切片來做到這一點:
# get index of last valid non-null value in 10101
idx = df.index.get_loc(df['10101'].last_valid_index())
# slice rows (with some minor bounds checking)
df.iloc[max(0, idx - 3):idx + 1]
TRCODEP 10101 10201 20101 20201 20203
1 43827 NaN NaN NaN NaN NaN
2 43828 NaN 20:00:00 NaN NaN NaN
3 43829 NaN NaN NaN 20:35:00 NaN
4 43830 20:45:00 NaN NaN NaN NaN
添加回答
舉報
0/150
提交
取消