gpt4 book ai didi

python - 使用 for 循环向 Pandas 中的所有日期列添加天数

转载 作者:行者123 更新时间:2023-12-04 08:58:10 25 4
gpt4 key购买 nike

我有一个 dataframe日期字符串是 subsetdata frame .第5 rowsdataframe

dates_df = pd.DataFrame(
{'date1':['2020-06-16','2020-06-16','2020-06-17','2020-06-21','2020-06-11'],
'date2':['2020-06-10','2020-06-10','2020-06-10','2020-06-10','2020-06-10'],
'date3':['2018-12-20','2018-12-19','2019-09-20','2019-05-08','2020-06-13'],
'date4':['2020-07-07','2020-06-30','2020-07-01','2020-07-03','2020-07-24']})
我有 declared variablenew_date='2020-06-29' Define a variablediff_date使得 diff_date=new_date-dates_df['date2']那么这个 diff_date应该添加到所有 date values在每个 date column这应该是我的 final_df .
到目前为止我采取的步骤是将这些值转换为 pd.to_datetime()也得到了差异。得到了给定答案的最终 df。
###########################
对上面的数据框稍微修改了一下,写了一个这样的函数。
dates_df=pd.DataFrame(
{'date1':['2020-06-16','2020-06-16','2020-06-17','2020-06-21','2020-06-
11'],'date2':['2020-06-10','2020-08-10','2020-06-10','2020-09-13','2020-06-
10'],'date3':['2018-12-20','2018-12-19','2019-09-20','2019-05-08','2020-06-
13'],'date4':['2020-07-07','2020-06-30','2020-07-01','2020-07-03','2020-07-
24']})

def datechange_func(dataset,variablelist,new_run_date,temp_run_date=None):
dataset[variablelist]=dataset[variablelist].apply(pd.to_datetime)
li= list(dataset['date2'].unique())
if dataset.loc[dataset['date2'].any().isin(li)]:
dataset['date2'] = max(li)
else:
dataset['date2'] = temp_run_date

diff = new_run_date - dataset['date2']

dataset[variablelist]=dataset[variablelist].add(diff,axis=0)

return dataset
variablelist1=['date1', 'date2', 'date3', 'date4'] final_df=datechange_func(dates_df,variablelist1,new_run_date,temp_run_date=None)应该 update dates_df['date2']获取 maximum unique valuedate2 column的所有行中
但我收到这个错误 TypeError: invalid_op() got an unexpected keyword argument 'skipna'如何纠正这个问题?

最佳答案

使用 pd.to_datetime将日期之类的列转换为 Pandas 日期时间系列,然后使用 DataFrame.add沿axis=0添加 diff到数据框:

dates_df = dates_df.apply(pd.to_datetime)
diff = pd.Timestamp('2020-06-29') - dates_df['date2']
final_df = dates_df.add(diff, axis=0)
结果:
print(final_df)
date1 date2 date3 date4
0 2020-07-05 2020-06-29 2019-01-08 2020-07-26
1 2020-07-05 2020-06-29 2019-01-07 2020-07-19
2 2020-07-06 2020-06-29 2019-10-09 2020-07-20
3 2020-07-10 2020-06-29 2019-05-27 2020-07-22
4 2020-06-30 2020-06-29 2020-07-02 2020-08-12

关于python - 使用 for 循环向 Pandas 中的所有日期列添加天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63704427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com