【发布时间】:2019-06-12 22:05:27
【问题描述】:
我正在尝试将数字列表添加到现有的 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')
初始化列表
list_A = [0,1,2,3,4]
将列表更改为系列
series_A = pd.Series(list_A)
将系列另存为数据框列
df[1] = series_A.values
并收到了这样的问候:
Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 setitem 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/frame.py”,第 2299 行 self._set_item(键,值) _set_item 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/frame.py”,第 2366 行 值 = self._sanitize_column(键,值) _sanitize_column 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/frame.py”,第 2524 行 value = _sanitize_index(value, self.index, copy=False) _sanitize_index 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/series.py”,第 2741 行 raise ValueError('值的长度与'的长度不匹配' ValueError:值的长度与索引的长度不匹配
df[0] = series_A.values 回溯(最近一次通话最后): 文件“”,第 1 行,在 setitem 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/frame.py”,第 2299 行 self._set_item(键,值) _set_item 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/frame.py”,第 2366 行 值 = self._sanitize_column(键,值) _sanitize_column 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/frame.py”,第 2524 行 value = _sanitize_index(value, self.index, copy=False) _sanitize_index 中的文件“/usr/lib/python2.7/dist-packages/pandas/core/series.py”,第 2741 行 raise ValueError('值的长度与'的长度不匹配' ValueError:值的长度与索引的长度不匹配
【问题讨论】:
-
请向我们提供完整的可重现代码,以便我们更好地为您提供帮助。
-
将数据读入二维列表,将数据追加到该列表中,将该列表写入文件。您究竟在哪里遇到问题?
-
不是刻薄,但您说您通常使用
csv包,但您不知道如何使用它编写东西? -
当您使用
pandas标记问题时,为什么要使用csv.reader和savetxt?首先,使用 Pandas 可能会更好(更容易)。savetxt甚至是 NumPy,我根本没有看到它被提及。