📜  pandas 重复行 n 次 - Python (1)

📅  最后修改于: 2023-12-03 14:45:05.057000             🧑  作者: Mango

pandas 重复行 n 次 - Python

在使用 pandas 进行数据分析时,有时候我们需要对某些行进行重复,可能是为了填充缺失值或者是为了均衡数据集等目的。这时候,我们可以使用 pandas 中的 reindex() 方法来实现重复行 n 次的功能。

语法
DataFrame.reindex(index=None, columns=None, **kwargs)
参数
  • index:重新索引的索引列表;
  • columns:重新索引的列列表;
  • **kwargs:其他关键字参数。
示例

以下示例演示了如何使用 reindex() 方法来重复行 n 次。我们以如下数据集为例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie'],
        'age': [25, 30, 35]}
df = pd.DataFrame(data)
重复行一次

如果我们想要将数据集中的每个行都重复一次,可以使用如下代码:

df = df.reindex(df.index.repeat(2))

执行以上代码后,数据集将变为:

      name  age
0   Alice   25
0   Alice   25
1     Bob   30
1     Bob   30
2  Charlie  35
2  Charlie  35

我们可以看到,原数据集中的每个行都被重复了一次。

重复行两次

如果我们想要将数据集中的每个行都重复两次,可以使用如下代码:

df = df.reindex(df.index.repeat(3)).reset_index(drop=True)

这里我们使用了 reset_index() 方法,将索引值重置为从 0 开始。执行以上代码后,数据集将变为:

      name  age
0   Alice   25
0   Alice   25
0   Alice   25
1     Bob   30
1     Bob   30
1     Bob   30
2  Charlie  35
2  Charlie  35
2  Charlie  35

我们可以看到,原数据集中的每个行都被重复了两次。

更多示例

如果我们想要将某些行重复特定次数,可以使用如下代码:

df = df.reindex(df.index.repeat([1, 2, 3])).reset_index(drop=True)

执行以上代码后,数据集将变为:

       name  age
0    Alice   25
1       Bob  30
1       Bob  30
2  Charlie  35
2  Charlie  35
2  Charlie  35
2  Charlie  35
2  Charlie  35

我们可以看到,第一行被重复一次,第二行被重复两次,第三行被重复三次。