Я пытаюсь добавить список чисел в существующий 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)
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
Считайте данные в двумерный список, добавьте данные в этот список, запишите список в файл. Где именно вы сталкиваетесь с проблемами?
Не в обиду, но ты сказал, что обычно используешь пакет csv, но не знаешь, как с его помощью что-то писать?
Зачем использовать csv.reader и savetxt, когда вы помечаете вопрос как pandas? Вам, вероятно, лучше (проще) с пандами в первую очередь. savetxt — это даже NumPy, о котором я вообще не упоминаю.






Это довольно легко сделать с помощью Панды.
Общий процесс:
Написанный код:
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')
Пожалуйста, предоставьте нам полностью воспроизводимый код, чтобы мы могли лучше вам помочь.