Как добавить новую строку в пандах на основе условия из первого столбца? - PullRequest
0 голосов
/ 13 октября 2019

У меня есть следующий pandas dataframe: Пример входные данные

Я хотел бы перебирать строки только в первом столбце, и если он удовлетворяет условию (то есть содержит строку 'привет ') Я хотел бы добавить пустую строку выше этого с заполнением только первого столбца.

Пример output

Я пробовал: df.loc[0] ='My new title'

Это добавляет строку, но заголовок есть в каждом столбце.

Я предполагаю, что синтаксис будет выглядеть примерно так: `

for i in df.iloc[0]:
    if i == 'hello':
    df.loc[-1] ='My new title'
print(df)

` Это тоже не работает -может кто-то указать мне в правильном направлении. Спасибо

1 Ответ

0 голосов
/ 13 октября 2019

Вы можете добавить новую строку таким образом

import pandas

data = [['tom', 10], ['nick', 15], ['juli', 14]] 
df = pandas.DataFrame(data, columns = ['Name', 'Age']) 

df2 = pandas.DataFrame([['My new title', None]], columns = ['Name', 'Age'])
rownumber = 0
for i in df.iloc[0:,0]:

    if i == "nick":
        df = pandas.concat([df.iloc[:rownumber], df2, df.iloc[rownumber:]]).reset_index(drop=True)
        rownumber += 1

    rownumber += 1

, это добавит новую строку перед каждым "ником"

...