创建数据框重复的简单方法是什么

时间:2018-04-19 07:51:13

标签: python pandas

假设我有一个包含5行数据的数据帧。我想制作4个相同数据帧的重复集。

输入

col1    col2
a   1
b   2
c   3
d   4
e   5

输出:

col1    col2
a      1
b      2
c      3
d      4
e      5
a      1
b      2
c      3
d      4
e      5
a      1
b      2
c      3
d      4
e      5
a      1
b      2
c      3
d      4   
e      5

例如在python中如果我有一个字符串s='-'来复制我可以做这样的事情print s*4。我想在熊猫中使用类似的功能。

到目前为止,我尝试了pd.concat

df=pd.concat([df,df,df,df])

但问题是有时我必须创建超过20个重复的数据帧。有没有其他方法可以用pythonic方式制作重复的数据帧

1 个答案:

答案 0 :(得分:3)

在列表中使用concat一个数据帧,重复多个:

df = pd.concat([df] * 3, ignore_index=True)
print (df)
   col1  col2
0     a     1
1     b     2
2     c     3
3     d     4
4     e     5
5     a     1
6     b     2
7     c     3
8     d     4
9     e     5
10    a     1
11    b     2
12    c     3
13    d     4
14    e     5

另一种解决方案,其重复索引值为numpy.tile,并按loc展开:

df = df.loc[np.tile(df.index, 3)].reset_index(drop=True)