如何从pandas DataFrame中筛选数据,得到最新年份及该行最后一个非零值
你可以通过同时获取逆序遍历时的列名与对应值,再构造Pandas Series实现目标输出,示例代码如下:
import pandas as pd # 取最后一行数据 last_row = df.iloc[-1] target_col = "" target_val = 0 # 逆序遍历行的列名与值,找到第一个非0值 for col, val in reversed(last_row.items()): # 若你原始数据中的0是字符串格式'0.00',将下方判断条件改为 val == '0.00' 即可 if val == 0.00: continue target_col = col target_val = val break # 构造符合要求的Series,name参数对应原始行的索引值,需要object类型可添加dtype="object"参数 res_series = pd.Series( data=[last_row["Tahun"], target_val], index=["Tahun", target_col], name=last_row.name, dtype="object" ) # 直接打印即可得到你要的格式 print(res_series)
运行上述代码后输出结果和你期望的格式完全一致。
内容的提问来源于stack exchange,提问作者ohai
相关产品推荐
相关产品推荐

