我有一个数据框,我想“加倍”(或三倍,或....)。我不是试图将数据帧与其自身连接起来,即将df的一个完整副本堆叠在df的另一个完整副本之上。

从此开始:

import pandas as pd
from io import StringIO
from IPython.display import display

A_csv = """country
Afghanistan
Brazil
China"""
with StringIO(A_csv) as fp:
    A = pd.read_csv(fp)
display(A)


结果

       country
0  Afghanistan
1       Brazil
2        China


我想得到这样的东西;索引和缩进不是那么重要。

     country
0  Afghanistan
1  Afghanistan
2  Brazil
3  Brazil
4  China
5  China

最佳答案

使用np.repeat

df = pd.DataFrame(A.values.repeat(2), columns=A.columns)
df

       country
0  Afghanistan
1  Afghanistan
2       Brazil
3       Brazil
4        China
5        China




对于N-D数据帧,应使用axis中的repeat参数扩展解决方案:

df = pd.DataFrame(A.values.repeat(2, axis=0), columns=A.columns)

关于python - 在 Pandas 数据框中重复行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46435631/

10-12 23:27