[英]Pandas DataFrame - How to get most recent value for each column when grouped by another column
[英]How to get the most recent value for each column considering the NaN values using pandas
我有以下 dataframe
| Name | Year | COL1 | COL2 | COL3 |
------------------------------------------------
0 | A | 1980 | NaN | NaN | 9817 |
1 | A | 1981 | NaN | 1610 | 11487 |
2 | A | 1982 | 22.74 | NaN | 12256 |
3 | A | 1983 | 15.50 | NaN | 14214 |
4 | B | 1980 | NaN | 1580 | NaN |
5 | B | 1981 | 13.50 | 1603 | NaN |
6 | B | 1982 | 17.00 | 1610 | NaN |
7 | B | 1983 | 19.30 | NaN | NaN |
8 | C | 1980 | 12.00 | NaN | 1750 |
9 | C | 1981 | 15.50 | 1997 | 1790 |
10| C | 1982 | 16.36 | 2027 | 1790 |
11| C | 1983 | 22.74 | NaN | 1810 |
我需要得到上面dataframe的以下数据。
该数据是考虑到COL1
、 COl2
和COL3
列的每个Name
的最新( by year
)数据
Name | COL1 | COL2 | COL3 |
------------------------------------------------
A | 15.50 | 1610 | 14214 |
B | 19.30 | 1610 | NaN |
C | 22.74 | 2027 | 1810 |
将GroupBy.last
用于每个组的最后一个非缺失值:
#if necessary
#df = df.sort_values(['Name','Year'])
df = df.groupby('Name', as_index=False).last()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.