gpt4 book ai didi

python - Pandas DataFrame 填充列中的缺失值

转载 作者:行者123 更新时间:2023-12-03 14:06:36 25 4
gpt4 key购买 nike

我有一个包含以下列的大型 DataFrame:

import pandas as pd 

x = pd.read_csv('age_year.csv')
x.head()

ID Year age
22445 1991
29925 1991
76165 1991
223725 1991 16.0
280165 1991

Year列的值范围为 19912017 .最 ID有一个 age每个值 Year , 例如:
x.loc[x['ID'] == 280165].to_clipboard(index = False)

ID Year age
280165 1991
280165 1992
280165 1993
280165 1994
280165 1995 16.0
280165 1996 17.0
280165 1997 18.0
280165 1998 19.0
280165 1999 20.0
280165 2000 21.0
280165 2001
280165 2002
280165 2003
280165 2004 25.0
280165 2005 26.0
280165 2006 27.0
280165 2007
280165 2008
280165 2010 31.0
280165 2011 32.0
280165 2012 33.0
280165 2013 34.0
280165 2014 35.0
280165 2015 36.0
280165 2016 37.0
280165 2017 38.0
我想填充 age 中的缺失值每个唯一的列 ID基于他们现有的值(value)观。例如,对于 ID上面的280165,我们知道它们是 292008 ,假设它们是 312010 (2007 年有 28 个,2003 年有 24 个,依此类推)。
这些缺失的应该怎么填 age许多独特的值(value) ID每年?我不确定如何在整个 DataFrame 中以统一的方式执行此操作。本题中作为例子使用的数据可以在 here中找到。 .

最佳答案

尝试做:

def get_age(s):
present = s.age.notna().idxmax()
diff = s.loc[[present]].eval('age - Year').iat[0]
s['age'] = diff + s.Year
return s

df.groupby(['ID']).apply(get_age)

关于python - Pandas DataFrame 填充列中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63412782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com