df.append () не добавляется в DataFrame - PullRequest
0 голосов
/ 25 декабря 2018

Я сформулировал этот вопрос о добавлении строк с индексом WITH, но мне пока не ясно, как / почему это происходит, когда индексов нет:

columnsList=['A','B','C','D']
df8=pd.DataFrame(columns=columnsList)
L=['value aa','value bb','value cc','value dd']
s = pd.Series(dict(zip(df8.columns, L)))
df8.append(s,ignore_index=True)
df8.append(s,ignore_index=True)

Я ЖДУ ЗДЕСЬ2X4 DATAFRAME.тем не менее, ни добавленные значения, ни ошибка не возникли.

print(df8.shape)
#>>> (0,4)

Почему ряд не добавляется и почему не выдается ошибка?


Если я пытаюсь добавить строку с LOC, добавляется индекс,

df8.loc[df8.index.max() + 1, :] = [4, 5, 6,7]
print(df8)

результат:

     A  B  C  D
NaN  4  5  6  7

Я думаю, ни LOC, ни iLOC не могут использоваться для добавления строк безимя индекса (т. е. Loc добавляет имя индекса NaN, и iLoc нельзя использовать, когда номер индекса больше, чем строки базы данных)

1 Ответ

0 голосов
/ 25 декабря 2018

DataFrame.append не является операцией на месте.Из документов:

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)

Добавлять строки other в конец этого кадра, возвращая новый объект.Столбцы, не входящие в этот кадр, добавляются как новые столбцы.

Вам необходимо присвоить результат обратно.

df8 = df8.append([s] * 2, ignore_index=True)
df8
          A         B         C         D
0  value aa  value bb  value cc  value dd
1  value aa  value bb  value cc  value dd
...