BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #24573同步于 2019/11/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

【小白求问】如何将计算结果添加到现有csv文件的新列中

jingyutui
2019/11/12镜像同步16 回复
想要把数据的计算结果直接添加到一个现有的csv文件的新列中,但是在网上搜的代码都是放在一个新的csv文件中。于是一番搜索后打算先添加一列新的数据然后在改写,但是出现了single positional indexer is out-of-bounds,查了很多方法仍未解决。且还存在的新问题是每执行一次代码,都会自行把数据复制一遍,比如原本50行,执行一次就变成100行,再执行就变成150行。。。 刚接触python不久,可能问的很幼稚,希望大家多多包容 报错信息如下 IndexError Traceback (most recent call last) <ipython-input-16-3a8909f66bba> in <module> 23 lng = table.cell(index_taizhan,13).value#读取经度1信息 24 lat = table.cell(index_taizhan,14).value#读取纬度1信息 ---> 25 x = data_test.iloc[index_test,3]#读取经度2信息 26 y = data_test.iloc[index_test,4]#读取纬度2信息 27 a = int(haversine(lng,lat,x,y))#计算距离(单位米) E:\Anaconda3\lib\site-packages\pandas\core\indexing.py in __getitem__(self, key) 1492 except (KeyError, IndexError, AttributeError): 1493 pass -> 1494 return self._getitem_tuple(key) 1495 else: 1496 # we by definition only have the 0th axis E:\Anaconda3\lib\site-packages\pandas\core\indexing.py in _getitem_tuple(self, tup) 2141 def _getitem_tuple(self, tup): 2142 -> 2143 self._has_valid_tuple(tup) 2144 try: 2145 return self._getitem_lowerdim(tup) E:\Anaconda3\lib\site-packages\pandas\core\indexing.py in _has_valid_tuple(self, key) 221 raise IndexingError('Too many indexers') 222 try: --> 223 self._validate_key(k, i) 224 except ValueError: 225 raise ValueError("Location based indexing can only have " E:\Anaconda3\lib\site-packages\pandas\core\indexing.py in _validate_key(self, key, axis) 2068 return 2069 elif is_integer(key): -> 2070 self._validate_integer(key, axis) 2071 elif isinstance(key, tuple): 2072 # a tuple should already have been caught by this point E:\Anaconda3\lib\site-packages\pandas\core\indexing.py in _validate_integer(self, key, axis) 2137 len_axis = len(self.obj._get_axis(axis)) 2138 if key >= len_axis or key < -len_axis: -> 2139 raise IndexError("single positional indexer is out-of-bounds") 2140 2141 def _getitem_tuple(self, tup): IndexError: single positional indexer is out-of-bounds
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
specops机器人#1 · 2019/11/12
不考虑性能的话把整个CSV先读到一个df里 再增加你要的列 然后df.to_csv
kk2871927机器人#2 · 2019/11/12
楼上正解,to_csv就好
wangzhigang机器人#3 · 2019/11/12
另一种解决思路就是用数据库,这样会方便好多
lxy111机器人#4 · 2019/11/12
pandas 读写csv
buptlihang机器人#5 · 2019/11/12
paste命令不是可以按列合并两个文件吗
jingyutui机器人#6 · 2019/11/13
嗯嗯谢谢啦!!! 【 在 specops 的大作中提到: 】 : 不考虑性能的话把整个CSV先读到一个df里 再增加你要的列 然后df.to_csv
jingyutui机器人#7 · 2019/11/13
好的谢谢!!! 【 在 kk2871927 的大作中提到: 】 : 楼上正解,to_csv就好
jingyutui机器人#8 · 2019/11/13
要求用python[ema1] 【 在 wangzhigang 的大作中提到: 】 : 另一种解决思路就是用数据库,这样会方便好多
jingyutui机器人#9 · 2019/11/13
不是合并,是添加新的列~ 【 在 buptlihang 的大作中提到: 】 : paste命令不是可以按列合并两个文件吗