Python 3.x 无法使用Numpy将对象转换为np.int64

Python 3.x 无法使用Numpy将对象转换为np.int64,python-3.x,pandas,numpy,dataframe,Python 3.x,Pandas,Numpy,Dataframe,我有一个包含3列的数据框,数据类型如下: df.info() tconst object directors object writers object 请参见数据本身: 现在,我必须将列tconst更改为dtype:int64。我尝试了此代码,但它引发了一个错误: df = pd.read_csv('title.crew.tsv', header=None,sep='\t', enco

我有一个包含3列的数据框,数据类型如下:

df.info()
tconst       object
directors    object
writers      object
请参见数据本身:

现在,我必须将列tconst更改为dtype:int64。我尝试了此代码,但它引发了一个错误:

df = pd.read_csv('title.crew.tsv',
                   header=None,sep='\t', 
                   encoding= 'latin1',
                   names = ['tconst', 'directors','writers'], 
                   dtype={'tconst': np.int64,'directors':np.int64})
错误1:ValueError:以10为基数的int()的文本无效:“tconst”
错误:类型错误:无法根据“安全”规则将数组从dtype('O')强制转换为dtype('int64')


这里出了什么问题?

在我看来,这里的问题是参数
header=None
,用于读取没有
csv
header的
文件

解决方案是删除它,因为文件中是第一行标题,它转换为
DataFrame
的列名:

df = pd.read_csv('title.crew.tsv',
                   sep='\t', 
                   encoding= 'latin1')
另一个问题是列中的
tt
nm
前缀,因此无法转换为整数

解决办法是:

df['tconst'] = df['tconst'].str[2:].astype(int)

我们需要您的csv数据样本来帮助您。@Tomothy32抱歉,我刚刚添加了它。我在tsv显示中没有看到任何整数。所有数字前面都有字母“tt”和“nm”。它们是数据帧中的
对象
,因为它们是作为字符串加载的。它们无法转换为整数,至少不能转换为当前形式。我只是删除了header=None并重新运行了它。然而,不幸的是,同样的错误。@Tini-数据是否保密?@Tini-是否可以共享它或添加下载链接?@Tini-在某些行中有多个值,用
分隔,例如第
8行中的
Is
nm0005690,nm0374658
。是否需要在数据中创建2行
tt0000007 nm0374658\N
tt0000007 nm0005690\N