我正在尝试在现有数据帧上创建新列,但是始终遇到“ KeyError”问题。 在我的数据框中,我有一列包含出生日期,并且我想使用此列来获取客户的年龄。 我使用的功能是
onCharacteristicChanged
到目前为止,函数“ calculate_age”没有任何问题,但是我一直都在得到它:
for i in range(len(df1)):
df1['Idade'][i] = calculate_age(df1['Data de Nascimento'][i])
我做错了什么?
答案 0 :(得分:1)
您正尝试在尚未创建的列上建立索引
您需要这样做
df1['Idade'] = [calculate_age(df1['Data de Nascimento'][i]) for i in range(len(df1))]
甚至更清洁
df1['Idade'] = df1['Data de Nascimento'].apply(calculate_age)
答案 1 :(得分:0)
您正试图遍历一个不存在的列,因此存在KeyError。
这里是使用pandas datetime模块的另一种方法; 假设出生日期是数据框(df1)中的时间戳列
year_now = pd.datetime.now()
df1['age'] = year_now.year - pd.DatetimeIndex(df1['dateofbirth']).year