【发布时间】:2020-09-02 11:20:11
【问题描述】:
我有一个dataframe 的日期字符串,它是大data frame 的subset。这个dataframe 的前5 个rows 是
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 一个variable 叫new_date='2020-06-29'
Define a variable 调用diff_date 使得diff_date=new_date-dates_df['date2']
然后这个diff_date 应该添加到每个date column 中的所有date values 中,这应该是我的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 value 在date2 column 的所有行中
但我得到这个错误
TypeError: invalid_op() got an unexpected keyword argument 'skipna'
如何解决这个问题?
【问题讨论】: