复制前十行并重新排序日期

问题描述 投票:0回答:1

我是初学者。目前,我想复制数据帧的前十行(超过 100 行日期 ddmmyyyy 和流程如下。重新排序前十行,其中最后一行的日期(20/1/2022 - 1/1/ 2022)。

日期 流量
2022 年 1 月 1 日 12
2022 年 2 月 1 日 9
......
2022年5月30日 0.4

我不知道如何锻炼,有人可以帮助我吗?

pandas duplicates
1个回答
0
投票

假设这个输入:

df = pd.DataFrame({'Date': pd.date_range('2022-01-01', '2022-5-30', freq='D'),
                   'Flow': range(150)})

您可以先提取前 10 行,按相反顺序排序,然后使用

repeat
复制并与其余索引连接,最后
reindex
:

N = 10
order = (df['Date'].iloc[:N]
         .sort_values(ascending=False)
         .index
         )

out = df.reindex(np.r_[order.repeat(2), df.index[N:]])

输出:

          Date  Flow
9   2022-01-10     9
9   2022-01-10     9
8   2022-01-09     8
8   2022-01-09     8
7   2022-01-08     7
7   2022-01-08     7
6   2022-01-07     6
6   2022-01-07     6
5   2022-01-06     5
5   2022-01-06     5
4   2022-01-05     4
4   2022-01-05     4
3   2022-01-04     3
3   2022-01-04     3
2   2022-01-03     2
2   2022-01-03     2
1   2022-01-02     1
1   2022-01-02     1
0   2022-01-01     0
0   2022-01-01     0
10  2022-01-11    10
11  2022-01-12    11
..         ...   ...
145 2022-05-26   145
146 2022-05-27   146
147 2022-05-28   147
148 2022-05-29   148
149 2022-05-30   149

[160 rows x 2 columns]
© www.soinside.com 2019 - 2024. All rights reserved.