📅  最后修改于: 2023-12-03 14:45:05.057000             🧑  作者: Mango
在使用 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
我们可以看到,第一行被重复一次,第二行被重复两次,第三行被重复三次。