基于约束生成列数据

2024-06-25 23:52:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv,有两列date\u 1和date\u 2。你知道吗

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,这样:

  1. 对于每个date_1value_1(聚合)不应超过5000。

  2. date_2value_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

有人能帮我吗。你知道吗


Tags: csv数据httpscom编辑datevaluegoogle
1条回答
网友
1楼 · 发布于 2024-06-25 23:52:20

我不认为这是你真正想要的,但我写这篇文章只是为了让你明白,这完全符合你问题中的要求,如果你有别的意思,你必须添加你期望的示例:

df['value_1'] = np.arange(0, 5000 / max(df['date_1'].value_counts()), 5000 / len(df) / max(df['date_1'].value_counts()))

这将在value_1列中给出一个递增趋势,并且每个date_1value_1之和保证不会超过5000。 顺便说一句:为了有一个不断增长的趋势,这假设你的日期是排序的,就像你发布的样本数据一样。如果没有(或可能没有),请执行以下操作:

df = df.sort_values(['date_1', 'date_2']) # or ['date_2', 'date_1'] if you prefer

在创建value_1列之前

相关问题 更多 >