如何在单列的单行中减去各种日期



我正在Python中尝试这段代码。

count1=0
count2=0
count3=0
count4=0
for i in range(len(col_1)):
a=col_1[i]
for j in range(len(a)-1):
delta=pd.to_datetime(a[j])-pd.to_datetime(a[j+1])
x=delta.days
if(x>=0)and(x<30):
count1=count1+1
elif(x>30)and (x<=60):
count2=count2+1
elif(x>=60) and (x<=90):
count3=count3+1
else:
count4=count4+1

这是我收到的错误

我希望通过减去各种日期来获得天数。

['2019-05-01', '2019-06-01', '2019-07-01', '2019-08-01', '2019-09-01', '2019-10-03', '2019-11-01']

如我们所见,第一个减法将显示 30 天 ,第三个日期的减法与第二个日期将显示 30 天,依此类推。

试试这个:

import pandas as pd
df = pd.DataFrame(columns=['dates'])
df.dates = pd.date_range(start='2019-05-01', periods=6, freq='MS')
df['delta_days'] = df.dates.diff()

列表col1[i]的元素是根据您得到的错误而成为 int 类型。我不知道为什么,因为没有提供 col1。假设 col1 是一个包含日期字符串的列表,idk 为什么需要第二次迭代:

for i in range(len(col1) - 1):
a = pd.to_datetime(col1[i]).dayofyear
b = pd.to_datetime(col1[i+1]).dayofyear
if (a-b)>=0:
#whatever you want to calculate

代码中的第二个 for 循环是遍历日期字符串的每个字母。

最新更新