Pandas 如何在数据帧中添加n行(不是一行)?

Pandas 如何在数据帧中添加n行(不是一行)?,pandas,dataframe,Pandas,Dataframe,我有一些数据帧,我想在每个数据帧中添加一些空行。添加的空行数取决于maxdf的长度减去数据帧本身的长度。 我尝试了以下代码: control1.loc[control1.index.max() + (len(maxdf)-len(control1))] = None control2.loc[control2.index.max() + (len(maxdf)-len(control2))] = None control3.loc[control3.index.max() + (len(maxd

我有一些数据帧,我想在每个数据帧中添加一些空行。添加的空行数取决于maxdf的长度减去数据帧本身的长度。
我尝试了以下代码:

control1.loc[control1.index.max() + (len(maxdf)-len(control1))] = None
control2.loc[control2.index.max() + (len(maxdf)-len(control2))] = None
control3.loc[control3.index.max() + (len(maxdf)-len(control3))] = None
control4.loc[control4.index.max() + (len(maxdf)-len(control4))] = None
control5.loc[control5.index.max() + (len(maxdf)-len(control5))] = None

但它只在每个df中添加一个空行。有人能帮我吗?

我的建议是,使用
concat
将所需形状的数据帧附加到您的
control1
(其他数据帧的方法相同)。由于没有样本数据,我为
control1
创建了一个示例,如下所示:

import pandas as pd
import numpy as np
np.random.seed(123)
control1 = pd.DataFrame(np.random.randint(0, 1000,size=(3, 4)), columns=list('ABCD'))
maxdf = pd.DataFrame(np.random.randint(0, 1000,size=(5, 4)), columns=list('ABCD'))


control1 = (pd.concat([control1, pd.DataFrame(np.nan, columns=control1.columns,
                                             index=range(0, maxdf.shape[0]-control1.shape[0]))])
              .reset_index(drop=True))
输出为:

      A      B      C      D
0  510.0  365.0  382.0  322.0
1  988.0   98.0  742.0   17.0
2  595.0  106.0  123.0  569.0
3    NaN    NaN    NaN    NaN
4    NaN    NaN    NaN    NaN

希望它有助于添加空行-您可以执行以下操作:

n=10
control1=control1.append(pd.DataFrame([[None]*len(control1.columns)]*n,columns=control1.columns,index=np.arange(n)+control1.index.max()+1))
使用@Raphaele Adjerad样本数据输出:

#之前:
A、B、C、D
0  510  365  382  322
1  988   98  742   17
2  595  106  123  569
#之后:
A、B、C、D
0    510   365   382   322
1    988    98   742    17
2    595   106   123   569
3无无无
4无无无
5无
6无无无
7无无无
8无
9无无无
10无
11无无无
12无