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

Posted

技术标签:

【中文标题】TypeError:int() 参数必须是字符串、类似字节的对象或数字,而不是“DataFrame”【英文标题】:TypeError: int() argument must be a string, a bytes-like object or a number, not 'DataFrame' 【发布时间】:2016-12-06 08:42:18 【问题描述】:

我有数据框,我需要在使用最近邻法之前对质量进行评估。 我使用sklearn.cross_validation.KFold,但我不知道,我怎样才能给这个函数一个数据框。

quality = KFold(df, n_folds=5, shuffle=True, random_state=42)

但它会返回

TypeError: int() argument must be a string, a bytes-like object or a number, not 'DataFrame'

我该如何解决?

【问题讨论】:

【参考方案1】:

您应该传递要执行拆分的行数:

quality = KFold(len(df), n_folds=5, shuffle=True, random_state=42)

这将使用 df 的行数并返回一个索引数组来执行拆分,然后您可以使用它来切片 df:

for train_index, test_index in quality:
    # do something with slices
    df.iloc[train_index]
    df.iloc[test_index]

如果您的 df 索引是 int64 索引并且是单调的并且从 0 增加,那么您可以使用 loc 而不是 iloc

【讨论】:

以上是关于TypeError:int() 参数必须是字符串、类似字节的对象或数字,而不是“DataFrame”的主要内容,如果未能解决你的问题,请参考以下文章

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

Django TypeError int() 参数必须是字符串或数字,而不是 'QueryDict'

Python 2 - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“列表”

TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是使用 Python 3.7 时的“NoneType”

Django 保存到 DB:TypeError:int() 参数必须是字符串、类似字节的对象或数字,而不是“元组”

Paypal - 捕获订单 - 类型错误:strtolower():参数 #1 ($string) 必须是字符串类型,给定 int