TypeError:int()参数必须是字符串、类似字节的对象或不是“DataFrame”的数字

2024-09-29 10:27:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法将一个函数作为参数传递给另一个函数。这是我的代码:

            sNummer = sv[9:11]
            pd.to_numeric(sNummer)
            print(type(sNummer))
            sNummer= df.replace(np.nan,0)
            sNummer= sNummer.replace(r'^\s*$', np.nan, regex=True)
            
            if int(sNummer) >= 0 and int(sNummer) <= 49:
                

                if gender.lower().strip() not in male_gender_options:
                    
                    #df= df.replace(r'^\s*$', np.nan, regex=True)
                    
                    df.at[index, 'sv_plausibility'] = (df.at[index,'sv_plausibility'].str.split()).apply(lambda x: float(sNummer))

                    if df.at[index, 'sv_plausibility'] == '':
                        df.at[index, 'sv_plausibility'] += 'Seriennummer müsste männlich sein aber passt nicht zu Geschlechtsspalte'
                    else:
                        df.at[index, 'sv_plausibility'] += ', Seriennummer müsste männlich sein aber passt nicht zu Geschlechtsspalte'

                else:
                    pass

            elif int(sNummer) >= 50 and int(sNummer) <= 99:

                if gender.lower().strip() not in female_gender_options:

                    if df.at[index, 'sv_plausibility'] == '':
                        df.at[index, 'sv_plausibility'] += 'Seriennummer müsste weiblich sein aber passt nicht zu Geschlechtsspalte'
                    else:
                        df.at[index, 'sv_plausibility'] += ', Seriennummer müsste weiblich sein aber passt nicht zu Geschlechtsspalte'

                else:
                    pass

            else:
                if df.at[index, 'sv_plausibility'] == '':
                    df.at[index, 'sv_plausibility'] += 'Seriennummer ungültig'
                else:
                    df.at[index, 'sv_plausibility'] += ', Seriennummer ungültig'

我不明白,因为当我打印“sNummer”类型时,它是一个字符串,但不知怎的,他说它是数据帧

有什么想法吗

错误:

以下是完整的回溯:

第2部分:合理性检查SV-Nr<;类“datetime.datetime”>;hr 1985-07-06 00:00:00 1985-07-06 00:00:00 13 Tkinter回调回溯中的异常(最近一次调用):文件“C:\ProgramData\Anaconda3\lib\Tkinter\u init\uuuuuu.py”,第1883行,在调用返回self.func(*args)文件“C:\Users\DE110117.spyder-py3\temp.py”,第1123行,在运行PWCDATA().sv\u nr\u合理性(df=excel\u file,sv\u column=self.svColumnName,gender\u column=self.genderColumnName,文件“C:\Users\DE110117.spyder-py3\temp.py”,sv\u nr\u合理性,如果int(sNummer)>;=0和int(sNummer)<;=49:TypeError:int()参数必须是字符串、类似于对象的字节或数字,而不是“DataFrame”

sv:sv_列(索引)


Tags: dfindexifgenderelseatintsv
2条回答
sNummer = sv[9:11]
pd.to_numeric(sNummer)

创建此变量时,为了使pd.to_数值工作,Pandas将sNummer转换为Dataframe,因此类型为Dataframe

可能创建的数据帧只有一个值,即您想要的数字,您可以打印整个sNummer以查看其值

我认为不需要传递sNummer,您可以将sNummer[0]传递给您的函数,并获得它需要的Int

            sNummer = sv[9:11]
            sNumber=pd.to_numeric(sNummer,errors='coerce')
            print(type(sNummer))
            
            if int(sNummer) >= 0 and int(sNummer) <= 49:

这是我的新代码,但我有以下错误:

ValueError:基数为10的int()的文本无效:“”

我认为这是因为有些案例是空的,并且带有“errors-compresse”的行不起作用

相关问题 更多 >