【发布时间】:2018-04-11 01:57:42
【问题描述】:
如果该行的“月”列中的月份 ==“十月”、“十一月”、“十二月”,我正在尝试从数据框中的“年年”列中减去 (1) 年。
我尝试了多种方法,但现在卡住了。下面的循环使整个 yy2 列 yy-1,而不仅仅是月份列中包含 10 月、11 月或 12 月的行。
yy2 = []
for row in df['month']:
if row != 'October':
yy2 = df['yy']
else:
yy2 = (df['yy'])-1
df['yy2'] = yy2
【问题讨论】:
-
这个循环不断地重新计算
yy2作为整个列,最后一项恰好是October,所以这就是你所看到的。你为什么感到惊讶? -
不要使用循环。
-
您是否考虑过使用日期时间对象而不是日期的字符串表示形式?
-
@dawg。一个好主意,但与这里的问题完全无关