ValueError:以10为基数的int()的文本无效:'';Python数据库
因此,在这段代码中,我试图操作特定文件中的数据。用户输入用于查找文件,然后根据我输入的文件查找特定的头,因为我需要基于文件号的头。例如,文件53是2018年6月销售预测,因此我需要在csv文件中找到包含该预测的标题,我希望将这些值乘以我想要的值(以进行调整预测),但我得到以下错误:ValueError:以10为基数的int()的文本无效:'';Python数据库,python,dataframe,Python,Dataframe,因此,在这段代码中,我试图操作特定文件中的数据。用户输入用于查找文件,然后根据我输入的文件查找特定的头,因为我需要基于文件号的头。例如,文件53是2018年6月销售预测,因此我需要在csv文件中找到包含该预测的标题,我希望将这些值乘以我想要的值(以进行调整预测),但我得到以下错误: EditCalc = input('What file do you want to modify') Dept = input('What department?') EditCalc = int(EditCalc
EditCalc = input('What file do you want to modify')
Dept = input('What department?')
EditCalc = int(EditCalc)
month = 'Jan'
if EditCalc % 12 == 0:
month = 'Jan'
if EditCalc % 12 == 1:
month = 'Feb'
if EditCalc % 12 == 2:
month = 'Mar'
if EditCalc % 12 == 3:
month = 'Apr'
if EditCalc % 12 == 4:
month = 'May'
if EditCalc % 12 == 5:
month = 'Jun'
if EditCalc % 12 == 6:
month = 'Jul'
if EditCalc % 12 == 7:
month = 'Aug'
if EditCalc % 12 == 8:
month = 'Sep'
if EditCalc % 12 == 9:
month = 'Oct'
if EditCalc % 12 == 10:
month = 'Nov'
if EditCalc % 12 == 11:
month = 'Dec'
year = EditCalc//12 + 14
editheadercalc= str(month)+'-'+str(year)+'\nQty'
editfile = pd.read_csv(str(EditCalc)+'.csv', encoding='latin-1')
editfilevalues= editfile.loc[editfile['Customer'].str.contains(Dept, na=False), str(editheadercalc)]
editfilevalues = editfilevalues.fillna(int(0))
int_series = editfilevalues.astype(int)
calculated_series = editfilevalues.apply(lambda x: x*1.3)
print(editfilevalues)
有什么想法吗?我不知道为什么我会犯这个错误,而stackoverflow上的每一篇关于这个的帖子都没有帮到我。谢谢大家! 当您尝试将某些内容转换为无法转换为整数的整数时,会发生此错误,例如空字符串
'
。您可以通过运行int(“”)
或int('这不是一个整数')
来重新创建它
要解决此问题,可以在将输入字符串转换为整数时使用try/except块。您可以捕获错误并让用户尝试不同的输入,直到他们提交有效的输入。例如:
return lib.astype_intsafe(arr.ravel(), dtype).reshape(arr.shape)
File "pandas\_libs\lib.pyx", line 456, in pandas._libs.lib.astype_intsafe
File "pandas/_libs/src\util.pxd", line 142, in util.set_value_at_unsafe
ValueError: invalid literal for int() with base 10: ' '
@好的,为什么按enter键会被解释为空字符串?比如,我该如何告诉节目组该看哪个部门at@roganjosh是,每次输入后我都按enter键。我还编辑了回溯错误。Thanks@roganjosh好的,谢谢,虽然这对格式化有帮助,但不幸的是它并不能防止错误的发生。@roganjosh虽然这个链接很有帮助,但我没有输入错误的用户输入:(我不认为这是问题所在,因为当我硬编码行editfile=pd.read_csv(str(EditCalc)+'.csv',encoding='latin 1')只需:editfile=pd.read_csv(53+'.csv',encoding='latin-1')就可以了
while True:
x = input('Input a number: ')
try:
x = int(x)
except ValueError:
print('That is not a number')
else:
print('The number you selected is {}'.format(x))
break