繁体   English   中英

考虑到使用 pandas 的 NaN 值,如何获取每列的最新值

[英]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的以下数据。
该数据是考虑到COL1COl2COL3列的每个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM