ValueError:以10为基数的int()的文本无效:'';Python数据库

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

因此,在这段代码中,我试图操作特定文件中的数据。用户输入用于查找文件,然后根据我输入的文件查找特定的头,因为我需要基于文件号的头。例如,文件53是2018年6月销售预测,因此我需要在csv文件中找到包含该预测的标题,我希望将这些值乘以我想要的值(以进行调整预测),但我得到以下错误:

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