Добавление списка номеров в существующий csv

Я пытаюсь добавить список чисел в существующий CSV-файл. Кажется, это должно быть легко, но я не могу получить правильный результат. Например, предположим, что test.csv имеет

0,0

1,1

2,2

3,3

4,4

и C=[0,1,2,3,4]

Я хочу сделать это для любого списка длины j, который соответствует количеству строк в тесте. Я хочу, чтобы test.csv был

0,0,0

1,1,1

2,2,2

3,3,3

4,4,4

Любая помощь приветствуется.

Благодарю за ваш ответ.

Я попытался это сделать следующим образом:

импортировать панд как pd импортировать numpy как np

данные импорта

df = pd.read_csv('test.csv')

инициализировать список

список_А = [0,1,2,3,4]

изменить список на серию

серия_A = pd.Серия (список_A)

сохранить серию как столбец dataframe

df[1] = серия_A.значения

и был встречен с этим:

Отслеживание (последний вызов последний): Файл "", строка 1, в Файл "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", строка 2299, в setitem self._set_item (ключ, значение) Файл "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", строка 2366, в _set_item значение = self._sanitize_column (ключ, значение) Файл "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", строка 2524, в _sanitize_column значение = _sanitize_index (значение, self.index, копия = ложь) Файл "/usr/lib/python2.7/dist-packages/pandas/core/series.py", строка 2741, в _sanitize_index поднять ValueError('Длина значений не соответствует длине ' ValueError: длина значений не соответствует длине индекса

df[0] = series_A.values Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", line 2299, in setitem self._set_item(key, value) File "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", line 2366, in _set_item value = self._sanitize_column(key, value) File "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", line 2524, in _sanitize_column value = _sanitize_index(value, self.index, copy=False) File "/usr/lib/python2.7/dist-packages/pandas/core/series.py", line 2741, in _sanitize_index raise ValueError('Length of values does not match length of ' ValueError: Length of values does not match length of index

Пожалуйста, предоставьте нам полностью воспроизводимый код, чтобы мы могли лучше вам помочь.

Jordan Singer 18.01.2019 16:57

Считайте данные в двумерный список, добавьте данные в этот список, запишите список в файл. Где именно вы сталкиваетесь с проблемами?

ForceBru 18.01.2019 16:58

Не в обиду, но ты сказал, что обычно используешь пакет csv, но не знаешь, как с его помощью что-то писать?

hqkhan 18.01.2019 16:59

Зачем использовать csv.reader и savetxt, когда вы помечаете вопрос как pandas? Вам, вероятно, лучше (проще) с пандами в первую очередь. savetxt — это даже NumPy, о котором я вообще не упоминаю.

9769953 18.01.2019 16:59
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
4
96
1

Ответы 1

Это довольно легко сделать с помощью Панды.

Общий процесс:

  • Считайте CSV-файл как pandas DataFrame.
  • Изменить список на серию
  • Добавить серию в DataFrame
  • Сохраните фрейм данных

Написанный код:

import pandas as pd
import numpy as np

#import data
df = pd.read_csv('Your_Filename.csv')

#initialize list
list_A = np.arange(365)
list_B = np.arange(365)*2

#change list to series
series_A = pd.Series(list_A)
series_B = pd.Series(list_B) 

#save series as dataframe column
df['column_name_A'] = series_A.values
df['column_name_B'] = series_B.values

#save dataframe to csv
df.to_csv('output_filename.csv')

Другие вопросы по теме