Python pandas: заполнение фрейма данных строка за строкой


простая задача добавления строки в

4 83

4 ответа:

df['y'] установить колонки

так как вы хотите установить строку, используйте .loc

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

In [7]: df = pandas.DataFrame(columns=['a','b','c','d'], index=['x','y','z'])

In [8]: df.loc['y'] = pandas.Series({'a':1, 'b':5, 'c':2, 'd':3})

In [9]: df
Out[9]: 
     a    b    c    d
x  NaN  NaN  NaN  NaN
y    1    5    2    3
z  NaN  NaN  NaN  NaN

мой подход, но я не могу гарантировать, что это самое быстрое решение.

df = pd.DataFrame(columns=["firstname", "lastname"])
df = df.append({
     "firstname": "John",
     "lastname":  "Johny"
      }, ignore_index=True)

Это более простая версия

df = DataFrame(columns=('col1', 'col2', 'col3'))
for i in range(5):
   df.loc[i] = ['<some value for first>','<some value for second>','<some value for third>']`

Если ваши входные строки являются списками, а не словарями, то следующее простое решение:

import pandas as pd
list_of_lists = []
list_of_lists.append([1,2,3])
list_of_lists.append([4,5,6])

pd.DataFrame(list_of_lists, columns=['A', 'B', 'C'])
#    A  B  C
# 0  1  2  3
# 1  4  5  6