如何在 Python Pandas 数据框中的每行下添加 24 行

原始数据框:

a1 a2 a3 a4 a5 a6
b1 b2 b3 b4 b5 b6

新数据框:

a1 a2 a3 a4 a5 a6
(第 1 个空行)
(第 2 个空行)
...
(第 24 个空行)
b1 b2 b3 b4 b5 b6
(第一个空行)
(第 2 个空行)
...
(第 24 个空行)

问题是:如何进行上述转换?非常感谢。


九州编程
浏览 209回答 2
2回答

烙印99

利用:print (df)    0   1   2   3   4   50  a1  a2  a3  a4  a5  a61  b1  b2  b3  b4  b5  b6按重复值的数量首先使用多个索引值,然后使用DataFrame.reindexwith np.arange:N = 5df.index = df.index * (N + 1)df = df.reindex(np.arange(df.index.max() + N + 1))print (df)      0    1    2    3    4    50    a1   a2   a3   a4   a5   a61   NaN  NaN  NaN  NaN  NaN  NaN2   NaN  NaN  NaN  NaN  NaN  NaN3   NaN  NaN  NaN  NaN  NaN  NaN4   NaN  NaN  NaN  NaN  NaN  NaN5   NaN  NaN  NaN  NaN  NaN  NaN6    b1   b2   b3   b4   b5   b67   NaN  NaN  NaN  NaN  NaN  NaN8   NaN  NaN  NaN  NaN  NaN  NaN9   NaN  NaN  NaN  NaN  NaN  NaN10  NaN  NaN  NaN  NaN  NaN  NaN11  NaN  NaN  NaN  NaN  NaN  NaN编辑:print (df)    0  1   2   3   4  50  a1  2  a3  a4  a5  61  b1  2  b3  b4  b5  6N = 5df.index = df.index * (N + 1)df = df.reindex(np.arange(df.index.max() + N + 1))print (df)      0    1    2    3    4    50    a1  2.0   a3   a4   a5  6.01   NaN  NaN  NaN  NaN  NaN  NaN2   NaN  NaN  NaN  NaN  NaN  NaN3   NaN  NaN  NaN  NaN  NaN  NaN4   NaN  NaN  NaN  NaN  NaN  NaN5   NaN  NaN  NaN  NaN  NaN  NaN6    b1  2.0   b3   b4   b5  6.07   NaN  NaN  NaN  NaN  NaN  NaN8   NaN  NaN  NaN  NaN  NaN  NaN9   NaN  NaN  NaN  NaN  NaN  NaN10  NaN  NaN  NaN  NaN  NaN  NaN11  NaN  NaN  NaN  NaN  NaN  NaNdef convert_int_with_NaNs(x):    try:        return x.astype('Int64')    except Exception:        return xdf = df.apply(convert_int_with_NaNs)print (df)      0    1    2    3    4    50    a1    2   a3   a4   a5    61   NaN  NaN  NaN  NaN  NaN  NaN2   NaN  NaN  NaN  NaN  NaN  NaN3   NaN  NaN  NaN  NaN  NaN  NaN4   NaN  NaN  NaN  NaN  NaN  NaN5   NaN  NaN  NaN  NaN  NaN  NaN6    b1    2   b3   b4   b5    67   NaN  NaN  NaN  NaN  NaN  NaN8   NaN  NaN  NaN  NaN  NaN  NaN9   NaN  NaN  NaN  NaN  NaN  NaN10  NaN  NaN  NaN  NaN  NaN  NaN11  NaN  NaN  NaN  NaN  NaN  NaN

慕虎7371278

为了添加一个空行,您可以使用以下指令:your_dataframe = your_dataframe.append({} , ignore_index=True)要执行请求的转换,因为我不知道您的数据是如何形成的,也不知道它是如何被索引的,我建议您创建一个新的空数据框。对于您的每个初始数据框条目,您应该将其插入到您的新条目中,并按照我的描述追加 24 次空行。这是有关如何执行它的示例:## Use your own data insteaddata = [['a1', 'a2', 'a3', 'a4', 'a5', 'a6'],['b1', 'b2', 'b3', 'b4', 'b5', 'b6']]### Load the data in the dataframedf = pd.DataFrame(data)## Create the empty dataframedf2 = pd.DataFrame()## Use the initial dataframe length to perform the row iterationlength = len(df.index)## For each rows of the initial dataframefor i in range(0, length):    ## Append the current row to the new dataframe    df2 = df2.append(df[i:i+1],ignore_index=True)     ## Adding 24 empty rows    for j in range(0,25):        df2 = df2.append({},ignore_index=True)因此,如果您的初始数据框类似于:    0   1   2   3   4   50  a1  a2  a3  a4  a5  a61  b1  b2  b3  b4  b5  b6执行脚本后,它会输出:      0    1    2    3    4    50    a1   a2   a3   a4   a5   a61   NaN  NaN  NaN  NaN  NaN  NaN2   NaN  NaN  NaN  NaN  NaN  NaN3   NaN  NaN  NaN  NaN  NaN  NaN...25  NaN  NaN  NaN  NaN  NaN  NaN26   b1   b2   b3   b4   b5   b627  NaN  NaN  NaN  NaN  NaN  NaN...49  NaN  NaN  NaN  NaN  NaN  NaN50  NaN  NaN  NaN  NaN  NaN  NaN51  NaN  NaN  NaN  NaN  NaN  NaN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python