假设我们有以下 df
import pandas as pd
data = {'Dates' : ['2018-10-15', '2018-02-01', '2018-04-01']}
data['Dates'] = pd.to_datetime(data.Dates)
print(df)
Dates
0 2018-10-15
1 2018-02-01
2 2018-04-01
在我现在的公司,我们有一个财务周结构,我通常使用 excel 来计算,我想用 Python 来做这个
我使用 DateTime 模块来解决我的条件,如下所示
如果月份是>= 4(四月),则周数为 1(所以我取 ISO 周数并减去 13)
如果月份是< 4我加39。
我对 YEAR 使用相同的逻辑 if >= 4 then year + 1 else YEAR
我想我可以使用一个简单的 for 循环,我可以在我的数据帧上使用它
for x in data.Dates:
if x.dt.month >= 4:
df['Week'] = x.dt.week - 13
else:
df['Week'] = x.dt.week + 39
和一年
for x in data.Dates:
if x.dt.month >= 4:
df['Year'] = FY & x.dt.year + 1
else:
df['Year'] = FY & x.dt.year
但是,>= 4两者都会引发公式错误。
File "<ipython-input-38-eadb99fdd9db>", line 4
df.Dates.dt.month > 4:
^
SyntaxError: invalid syntax
但是,如果我这样做
data['Week'] = data.Dates.dt.week
这给出了所有的周数,我在这里是否遗漏了一些基本的或必不可少的东西?
我希望这是清晰简洁的,任何建议(甚至如何提出更好的问题)都值得赞赏。
HUH函数
相关分类