Pandas append () ошибка с двумя фреймами данных - PullRequest
0 голосов
/ 24 мая 2018

Когда я пытаюсь добавить два или более фрейма данных и вывести результат в CSV-файл, он выглядит как формат водопада.

    dataset = pd.read_csv('testdata.csv')
  for i in segment_dist:
      for j in step:
          print_msg = str(i) + ":" + str(j)
          print("\n",i,":",j,"\n")
          temp = pd.DataFrame(estimateRsq(dataset,j,i),columns=[print_msg])
          csv = csv.append(temp)
  csv.to_csv('output.csv',encoding='utf-8', index=False)

эстимейл Rsq () возвращает массив.Я думаю, что этого фрагмента кода должно быть достаточно, чтобы помочь мне.

Формат, который я получаю в файле output.csv: enter image description here

Пожалуйста, помогите, какможно сдвинуть содержимое вверх с индекса 1.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Создайте список фреймов данных, затем объедините

pd.DataFrame.append дорого по сравнению с list.append + один вызов pd.concat.

Следовательно,вам нужно объединиться в список фреймов данных, а затем использовать pd.concat в этом списке:

lst = []

for i in segment_dist:
    # do something
    temp = pd.DataFrame(...)
    lst.append(temp)

df = pd.concat(lst, ignore_index=True, axis=0)

df.to_csv(...)
0 голосов
/ 24 мая 2018

Из df.append документации:

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

Если вы хотите добавить столбец справа, используйте pd.concat с axis=1 (означает горизонтально):

list_of_dfs = [first_df, second_df, ...]
pd.concat(list_of_dfs, axis=1)

Возможно, вы захотите добавить параметр ignore_index=True, если индексы в данных не совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...