返回信息流想要把数据的计算结果直接添加到一个现有的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
这是一条镜像帖。来源:北邮人论坛 / python / #24573同步于 2019/11/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
【小白求问】如何将计算结果添加到现有csv文件的新列中
jingyutui
2019/11/12镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
嗯嗯谢谢啦!!!
【 在 specops 的大作中提到: 】
: 不考虑性能的话把整个CSV先读到一个df里 再增加你要的列 然后df.to_csv