ValueError: invalid literal for int() with base 10 : '81?36N'
ValueError: invalid literal for int() with base 10 : '81?36N'
Traceback (most recent call last):
File "/Users/HectorVelasquez/PycharmProjects/Project 1/Project 1 python.py", line 57, in <module>
df['log'] = df['Latitude'].apply(lambda x: convert_rad(x))
File "/Users/HectorVelasquez/PycharmProjects/Project 1/venv/lib/python3.7/site-packages/pandas/core/series.py", line 4045, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas/_libs/lib.pyx", line 2228, in pandas._libs.lib.map_infer
File "/Users/HectorVelasquez/PycharmProjects/Project 1/Project 1 python.py", line 57, in <lambda>
df['log'] = df['Latitude'].apply(lambda x: convert_rad(x))
File "/Users/HectorVelasquez/PycharmProjects/Project 1/Project 1 python.py", line 7, in convert_rad
degree = int(temp[0]) + int(temp[1][:-1])/60
ValueError: invalid literal for int() with base 10: '81?36N'
文本文件
我不知道如何修复错误。
纬度经度城市Province/State国家
81?36N 16?40W 北格陵兰丹麦
79?59N 85?56W 尤里卡努纳武特加拿大
78?55N 11?56E Ny-?lesund 斯瓦尔巴挪威
78?13N 15?39E 朗伊尔城斯瓦尔巴挪威
转换函数
def convert_rad(lon):
temp = lon.split('°')
degree = int(temp[0]) + int(temp[1][:-1])/60
direction = temp[1][-1]
if direction=='N' or direction=='E':
sign = 1
elif direction=='S' or direction=='W':
sign = -1
return degree*sign*np.pi/180
Latitude_66N = convert_rad('66°0N')
Latitude_35N_66N = convert_rad('35°0N')
Latitude_35S_35N = convert_rad('35°0S')
Latitude_35S_66S = convert_rad('66°0N')
Latitude_66S = convert_rad('66°0N')
lon = convert_rad('37°22N')
lat = convert_rad('120°42W')
Image: Line 57
尝试稍微调试一下您的问题并询问它的最小版本,并使用足够的代码在其他地方重现它(例如文件和函数)。如果您查看回溯,您会发现错误在第一行。一般来说,文本比文本截图有用得多。话虽这么说
df = pd.read_csv('cities.txt', sep='\t', encoding='latin_1')
df['log'] = df['Latitude'].apply(lambda x: convert_rad(x))
忽略向后的 'log'
和 'Latitude'
,我可以从你的回溯中看到你的自定义函数 convert_rad
有
degree = int(temp[0]) + int(temp[1][:-1])/60
其中某处。尝试查看您的 csv 文件中的字符串 81?36N
,或者只使用文件的前几行。
Traceback (most recent call last):
File "/Users/HectorVelasquez/PycharmProjects/Project 1/Project 1 python.py", line 57, in <module>
df['log'] = df['Latitude'].apply(lambda x: convert_rad(x))
File "/Users/HectorVelasquez/PycharmProjects/Project 1/venv/lib/python3.7/site-packages/pandas/core/series.py", line 4045, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas/_libs/lib.pyx", line 2228, in pandas._libs.lib.map_infer
File "/Users/HectorVelasquez/PycharmProjects/Project 1/Project 1 python.py", line 57, in <lambda>
df['log'] = df['Latitude'].apply(lambda x: convert_rad(x))
File "/Users/HectorVelasquez/PycharmProjects/Project 1/Project 1 python.py", line 7, in convert_rad
degree = int(temp[0]) + int(temp[1][:-1])/60
ValueError: invalid literal for int() with base 10: '81?36N'
文本文件 我不知道如何修复错误。
纬度经度城市Province/State国家
81?36N 16?40W 北格陵兰丹麦
79?59N 85?56W 尤里卡努纳武特加拿大
78?55N 11?56E Ny-?lesund 斯瓦尔巴挪威
78?13N 15?39E 朗伊尔城斯瓦尔巴挪威
转换函数
def convert_rad(lon):
temp = lon.split('°')
degree = int(temp[0]) + int(temp[1][:-1])/60
direction = temp[1][-1]
if direction=='N' or direction=='E':
sign = 1
elif direction=='S' or direction=='W':
sign = -1
return degree*sign*np.pi/180
Latitude_66N = convert_rad('66°0N')
Latitude_35N_66N = convert_rad('35°0N')
Latitude_35S_35N = convert_rad('35°0S')
Latitude_35S_66S = convert_rad('66°0N')
Latitude_66S = convert_rad('66°0N')
lon = convert_rad('37°22N')
lat = convert_rad('120°42W')
Image: Line 57
尝试稍微调试一下您的问题并询问它的最小版本,并使用足够的代码在其他地方重现它(例如文件和函数)。如果您查看回溯,您会发现错误在第一行。一般来说,文本比文本截图有用得多。话虽这么说
df = pd.read_csv('cities.txt', sep='\t', encoding='latin_1')
df['log'] = df['Latitude'].apply(lambda x: convert_rad(x))
忽略向后的 'log'
和 'Latitude'
,我可以从你的回溯中看到你的自定义函数 convert_rad
有
degree = int(temp[0]) + int(temp[1][:-1])/60
其中某处。尝试查看您的 csv 文件中的字符串 81?36N
,或者只使用文件的前几行。