我有一个包含2列date_1和date_2的csv。
Date_1 Date_2
01/09/2019 02/08/2019
01/09/2019 03/08/2019
02/09/2019 03/08/2019
01/09/2019 04/08/2019
02/09/2019 04/08/2019
03/09/2019 04/08/2019
02/09/2019 05/08/2019
03/09/2019 05/08/2019
04/09/2019 05/08/2019
01/09/2019 06/08/2019
02/09/2019 06/08/2019
03/09/2019 06/08/2019
04/09/2019 06/08/2019
05/09/2019 06/08/2019
02/09/2019 07/08/2019
03/09/2019 07/08/2019
04/09/2019 07/08/2019
05/09/2019 07/08/2019
06/09/2019 07/08/2019
02/09/2019 08/08/2019
03/09/2019 08/08/2019
我想生成一个新列value_1
:
date_1
(总计)value_1
,不得超过5000。
date_2
和value_1
应该有增加的趋势,即汇总在date_2
上,value_1
应该每天都在增加,例如,对于date_2
,总计value_1
为1000,则对于下一个date_2
,该值应大于1000。
数据框具有唯一的(date_1,date_2)
元组。
编辑:
数据链接
https://drive.google.com/file/d/1xOlJfPNhGgclWyyQmdwzG-WRkU2fhEI4/view?usp=sharing
任何人都可以提供帮助。
答案 0 :(得分:0)
我认为这不是您真正想要的,但是我在写它只是为了让您理解这完全可以满足您问题的要求,如果您有其他疑问,则必须添加以下示例您的期望:
df['value_1'] = np.arange(0, 5000 / max(df['date_1'].value_counts()), 5000 / len(df) / max(df['date_1'].value_counts()))
这将使您在value_1
列中呈上升趋势,并且每个value_1
的{{1}}之和保证不会超过5000。
顺便说一句:假设您的日期已排序(如您发布的样本数据一样),则趋势将不断增加。如果不是(或可能不是),请执行以下操作:
date_1
在创建df = df.sort_values(['date_1', 'date_2']) # or ['date_2', 'date_1'] if you prefer
列之前