Python 3.x 是否有一个Python函数用于+;如果与前一行相同以保持序列递增,则将1转换为列中的值?
我有一些时间序列数据,如果有相同的值,我想修改它们 给我:Python 3.x 是否有一个Python函数用于+;如果与前一行相同以保持序列递增,则将1转换为列中的值?,python-3.x,pandas,Python 3.x,Pandas,我有一些时间序列数据,如果有相同的值,我想修改它们 给我: |period |period_secs| | 1 | 2 | | 1 | 3 | | 1 | 3 | | 1 | 3 | | 1 | 4 | | 1 | 8 | 我想添加一个新的列来继续这个序列,这样就不会有重复的数字,并且总是在增加。 这会给我 |perio
|period |period_secs|
| 1 | 2 |
| 1 | 3 |
| 1 | 3 |
| 1 | 3 |
| 1 | 4 |
| 1 | 8 |
我想添加一个新的列来继续这个序列,这样就不会有重复的数字,并且总是在增加。
这会给我
|period |period_secs|period_secs_new|
| 1 | 2 | 2 |
| 1 | 3 | 3 |
| 1 | 3 | 4 |
| 1 | 3 | 5 |
| 1 | 4 | 6 |
| 1 | 8 | 8 |
如果您有任何帮助,我们将不胜感激。这是一个使用和同时使用新的解决方案(在3.8中):
输出:
period period_secs period_secs_new
0 1 2 2
1 1 3 3
2 1 3 4
3 1 3 5
4 1 4 6
5 1 8 8
period period_secs period_secs_new
0 1 1 1
1 1 2 2
2 1 3 3
3 1 3 4
4 1 3 5
5 1 6 6
6 1 8 8
一种具有累积功能的解决方案:
从itertools导入累积
定义索引计数(总和、新值):
如果新值>求和,则返回新值。否则求和+1
df['period\u secs\u new']=列表(累计(df['period\u secs'],func=索引计数))
输出:
period period_secs period_secs_new
0 1 2 2
1 1 3 3
2 1 3 4
3 1 3 5
4 1 4 6
5 1 8 8
period period_secs period_secs_new
0 1 1 1
1 1 2 2
2 1 3 3
3 1 3 4
4 1 3 5
5 1 6 6
6 1 8 8
因为这是时间序列数据。我不能有一个时间发生超过一次,因为我必须将它与另一个df合并。