我试图通过从“Harvest_date”中减去60天来创建一个新列“Starting_time”,但每次都得到相同的日期。有人能指出我做错了什么吗?
| 收获日期|
| - -|
| 二十一月十二日|
| 二十一年一月十二日|
| 二十一年三月十日|
import pandas as pd
from datetime import timedelta
df1 = pd.read_csv (r'C:\Flower_weight.csv')
def subtract_days_from_date(date, days):
subtracted_date = pd.to_datetime(date) - timedelta(days=days)
subtracted_date = subtracted_date.strftime("%Y-%m-%d")
return subtracted_date
df1['Harvest_date'] = pd.to_datetime(df1.Harvest_date)
df1.style.format({"Harvest_date": lambda t: t.strftime("%Y-%m-%d")})
for harvest_date in df1['Harvest_date']:
df1["Starting_date"]=subtract_days_from_date(harvest_date,60)
print(df1["Starting_date"])
| 开始日期(_D)|
| - -|
| 2021年10月5日|
| 2021年10月5日|
| 2021年10月5日|
2条答案
按热度按时间omvjsjqw1#
我不确定这里是否需要使用循环。也许可以尝试以下方法:
o8x7eapl2#
在最后一个循环的每次迭代中覆盖序列
可以通过对
subtract_days_from_date
函数进行矢量化来消除循环。np.vectorize
的名字enumerate
的名称