Вызов нескольких индексов для pd.DataFrame () - PullRequest
0 голосов
/ 24 марта 2020

У меня следующий фрейм данных, и я хотел бы вставить две новые строки после каждой точки, в которой промежуток меньше -2. Я могу сделать это в al oop, так что это не проблема.

df=pd.DataFrame({'Tranc':['start', 'end', 'start', 'end', 'start', 'end', 'start', 'end', 'start', 'end', 'start', 'end', 'start', 'end', 'start'], 'lapse':[-1.0, -1.0, -42.0, -15.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -59.0],'start':[1525839075263999939, 1525839075263999939, 1525839075263999939, 1525839075263999939, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053, 1525839296894000053]})

Я могу генерировать и отображать по одной строке в каждой точке, где есть ошибка <-2, используя следующий код. </p>

idx = df.index[df.lapse <= -2]
insertdata= pd.DataFrame({'CreationDate':['2020-05-09 04:14:56.894000053'],'EditDate':['2021-05-09 04:14:56.894000053'],'lapse':[200],'Tranc':['begin']})
df2= pd.DataFrame(insertdata.values.tolist() * len(idx), 
                   columns=insertdata.columns, index=idx-1)

Однако всякий раз, когда я увеличиваю количество строк на insertdata.values.tolist() * len(idx)*2, как показано в следующем коде, я получаю ValueError: Shape of passed values is (6, 4), indices imply (3, 4), и это происходит из-за проблем с увеличением индексов подстановочных знаков.

insertdata= pd.DataFrame({'CreationDate':['2020-05-09 04:14:56.894000053'],'EditDate':['2021-05-09 04:14:56.894000053'],'lapse':[200],'Tranc':['begin']})
df2 = pd.DataFrame(insertdata.values.tolist() * len(idx)*2, 
                   columns=insertdata.columns, index=[idx-1, idx])

Любой, кто знает, как я могу вставить несколько подстановочных индексов в pd.DataFrame()?

...