【发布时间】:2021-07-12 13:04:40
【问题描述】:
我正在运行以下命令,在循环中创建名为 NEW_DATE 的新列。
我想为每一行,循环计算一个间隔,然后将该间隔与DATE相加,结果存储在NEW_DATE中。
数据框如下所示:
DATE INFO
0 2021-01-22 0.375
1 2020-12-04 0.125
2 2021-01-01 0.500
3 2020-12-24 0.375
4 2020-12-10 0.125
代码是这样的:
df['DATE'] = pd.to_datetime(df['DATE'], format='%Y%m%d')
for index, row in df.iterrows():
c1 = df['INFO'][index]
print(c1)
c3 = datetime.timedelta((1/c1)*5)
print(c3)
c2 = df['DATE'][index]
print(c2)
df['NEW_DATE'][index] = c2 + c3
print(df['NEW_DATE'][index], '\n')
目前我收到以下错误:
KeyError: 'NEW_DATE'
如果我删除 write df['NEW_DATE'][index] = c2 + c3,代码会运行,但存储在 NEW_DATE 中的值不正确,因为它们与打印的不同。
我该如何做我上面描述的事情?我走对了吗?
【问题讨论】:
-
看起来您需要在尝试为每一行设置值之前将
NEW_DATE列添加到您的数据框中。您可以搜索“pandas add column to dataframe”以了解几种方法。
标签: python pandas numpy loops jupyter-notebook