I am trying to round numbers, if their decimal numbers end with (125, 375, 625, 875), I replace them with (25, 25, 75, 75). My code is:
import pandas as pd inpExcelFile = 'Lat Lon Coordinates and soil.csv' #lat, lon gridCells = pd.read_csv(inpExcelFile) #inpExcelFile can be downloaded from "http://www.evernote.com/l/AWMD9Le15ytJmokhnUF8r84vtXVIsj2_lBQ/" df = pd.DataFrame(columns=['lat_ext', 'lon_ext', 'lat_close', 'lon_close']) for i in range(0, len(gridCells.index)): if str(df.at[i, 'lat_ext'])== str('125'): df.at[i, 'lat_close'] = float((str(gridCells.at[i, 'lat'])[:3]) + str('25')) if str(df.at[i, 'lat_ext'])== str('375'): df.at[i, 'lat_close'] = float((str(gridCells.at[i, 'lat'])[:3]) + str('25')) if str(df.at[i, 'lat_ext'])== str('625'): df.at[i, 'lat_close'] = float((str(gridCells.at[i, 'lat'])[:3]) + str('75')) if str(df.at[i, 'lat_ext'])== str('875'): df.at[i, 'lat_close'] = float((str(gridCells.at[i, 'lat'])[:3]) + str('75')) for j in range(0, len(gridCells.index)): if str(df.at[j, 'lon_ext'])== str('125'): df.at[j, 'lon_close'] = float((str(gridCells.at[j, 'lat'])[:3]) + str('25')) if str(df.at[j, 'lon_ext'])== str('375'): df.at[j, 'lon_close'] = float((str(gridCells.at[j, 'lat'])[:3]) + str('25')) if str(df.at[j, 'lon_ext'])== str('625'): df.at[j, 'lon_close'] = float((str(gridCells.at[j, 'lat'])[:3]) + str('75')) if str(df.at[j, 'lon_ext'])== str('875'): df.at[j, 'lon_close'] = float((str(gridCells.at[j, 'lat'])[:3]) + str('75')) df.to_excel('cikti' + '.xlsx')I am getting this error:
Error: File "<ipython-input-1-eff718b7025b>", line 1, in <module>
runfile('C:/Users/fyunu/OneDrive/Masaüstü/code rubbish/untitled3.py', wdir='C:/Users/fyunu/OneDrive/Masaüstü/code rubbish')
File "C:\Users\fyunu\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "C:\Users\fyunu\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/fyunu/OneDrive/Masaüstü/code rubbish/untitled3.py", line 20, in <module>
if str(df.at[i, 'lat_ext'])== str('125'):
File "C:\Users\fyunu\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 2141, in __getitem__
key = self._convert_key(key)
File "C:\Users\fyunu\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 2227, in _convert_key
raise ValueError("At based indexing on an non-integer "
ValueError: At based indexing on an non-integer index can only have non-integer indexers
How can I solve that problem?