Python 为什么不将列转换为Int64?

Python 为什么不将列转换为Int64?,python,python-3.x,pandas,Python,Python 3.x,Pandas,这是我的密码: import pandas as pd import numpy as np data = {'ID': [1,2,3,4,5,6,7,8,9], 'Doc':['Order','Order','Inv','Order','Order','Shp','Order', 'Order','Inv'], 'Rep':[101,101,101,102,102,102,103,103,103]} df = pd.DataFrame(data) #df['c

这是我的密码:

import pandas as pd
import numpy as np

data = {'ID': [1,2,3,4,5,6,7,8,9],
       'Doc':['Order','Order','Inv','Order','Order','Shp','Order', 'Order','Inv'],
       'Rep':[101,101,101,102,102,102,103,103,103]}
df = pd.DataFrame(data)


#df['concat']= (df['ID'].convert_dtypes(convert_string = True) + "1").convert_dtypes(convert_integer = True)

df['concat']= (df['ID'].astype(str) + "1").convert_dtypes(convert_integer = True)

print(df['concat'].dtype)
输出:

string
为什么
df['concat']
不是
Int64
以及如何获得它?

试试看

>>> df['concat'] = df['ID'].astype(str).add('1').astype('int64')
0    11
1    21
2    31
3    41
4    51
5    61
6    71
7    81
8    91
Name: ID, dtype: int64
试一试


@Vishnudev无法处理所有类型的数值连接。我需要通用的数字串联方法。上面的方法按照我的需要执行连接部分。但我需要后缀来将字符串转换为
Int64
@Vishnudev,这不适用于所有类型的数字连接。我需要通用的数字串联方法。上面的方法按照我的需要执行连接部分。但我需要后缀将字符串转换为
Int64
。这给了我
int32
,而不是
dtype:Int64
它给了我
Int64
。更新的答案,现在试试。这是因为您的系统,请使用
sys.maxsize
查看python int可以达到的最大字节大小。这将是32位的千兆字节,64位的EB字节。我如何更改它?我有64位的系统。上面的操作不正常吗?我不知道如何更改maxsize,也不知道是否可以更改。这应该是另一个问题@它为我提供了
int32
,而不是
dtype:int64
它为我提供了
int64
。更新的答案,现在试试。这是因为您的系统,请使用
sys.maxsize
查看python int可以达到的最大字节大小。这将是32位的千兆字节,64位的EB字节。我如何更改它?我有64位的系统。上面的操作不正常吗?我不知道如何更改maxsize,也不知道是否可以更改。这应该是另一个问题@瓦西里111