尝试在DataFrame中创建列时出现KeyError

时间:2019-09-11 16:04:05

标签: python pandas dataframe

我正在尝试在现有数据帧上创建新列,但是始终遇到“ KeyError”问题。 在我的数据框中,我有一列包含出生日期,并且我想使用此列来获取客户的年龄。 我使用的功能是

onCharacteristicChanged

到目前为止,函数“ calculate_age”没有任何问题,但是我一直都在得到它:

for i in range(len(df1)):
     df1['Idade'][i] = calculate_age(df1['Data de Nascimento'][i])

我做错了什么?

2 个答案:

答案 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