Как добавить n строк (не одну строку) в кадре данных? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть несколько фреймов данных, и я хочу добавить несколько пустых строк в каждом. Количество добавленных пустых строк зависит от длины 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. Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Вот мое предложение, чтобы использовать concat, чтобы добавить DataFrame желаемой формы к вашему 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

Надеюсь, это поможет

0 голосов
/ 16 апреля 2020

Чтобы добавить n пустых строк - вы можете сделать:

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:

# Before:

     A    B    C    D
0  510  365  382  322
1  988   98  742   17
2  595  106  123  569

# After:

       A     B     C     D
0    510   365   382   322
1    988    98   742    17
2    595   106   123   569
3   None  None  None  None
4   None  None  None  None
5   None  None  None  None
6   None  None  None  None
7   None  None  None  None
8   None  None  None  None
9   None  None  None  None
10  None  None  None  None
11  None  None  None  None
12  None  None  None  None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...