Python 将数据帧乘以固定的行数

Python 将数据帧乘以固定的行数,python,pandas,duplicates,Python,Pandas,Duplicates,我有一个数据框。我希望将(基本上复制数据帧)乘以固定数量的目标行 df: 我想复制这个数据帧,这样生成的数据帧应该有10行,基本上每行应该相乘三次,第10行可以是三行中的任意一行。我认为需要重复所有行,只重复一行: N = 10 a, b = divmod(N,len(df)) print (a, b) 3 1 如果所有列具有相同的数据类型,则解决方案如下: 解决方案(如果可能)不同的数据类型: 仅适用于以下情况的解决方案: 对于重复行,具有仅重复索引和loc的解决方案: idx = np

我有一个数据框。我希望将(基本上复制数据帧)乘以固定数量的目标行

df:

我想复制这个数据帧,这样生成的数据帧应该有10行,基本上每行应该相乘三次,第10行可以是三行中的任意一行。

我认为需要重复所有行,只重复一行:

N = 10

a, b = divmod(N,len(df))
print (a, b)
3 1
如果所有列具有相同的数据类型,则解决方案如下:


解决方案(如果可能)不同的数据类型:

仅适用于以下情况的解决方案:

对于重复行,具有仅重复索引和
loc
的解决方案:

idx = np.hstack((np.repeat(df.index[:-1], a), np.repeat(df.index[-1], a + b)))
df = df.loc[idx].reset_index(drop=True)

所有列的数据类型都相同吗?
c = np.repeat(df.values, a, axis=0)
d = np.repeat(df.values[-1], b, axis=0)

df = pd.DataFrame(np.vstack((c,d)), columns=df.columns)
print (df)
  col1 col2 col3
0   A1   B1   C1
1   A1   B1   C1
2   A1   B1   C1
3  A13  B13  C13
4  A13  B13  C13
5  A13  B13  C13
6  A27  B27  C27
7  A27  B27  C27
8  A27  B27  C27
9  A27  B27  C27
df = pd.concat([df] * a + [df.iloc[[-1]]] * b).sort_values('col1').reset_index(drop=True)
print (df)
  col1 col2 col3
0   A1   B1   C1
1   A1   B1   C1
2   A1   B1   C1
3  A13  B13  C13
4  A13  B13  C13
5  A13  B13  C13
6  A27  B27  C27
7  A27  B27  C27
8  A27  B27  C27
9  A27  B27  C27
idx = np.hstack((np.repeat(df.index[:-1], a), np.repeat(df.index[-1], a + b)))
df = df.loc[idx].reset_index(drop=True)