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