假设我有一个包含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方式制作重复的数据帧
答案 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)