pandas 在python中,如何将sting转换为int,(这些字符串可能以0开始)

a11xaf1n  于 2022-11-27  发布在  Python
关注(0)|答案(4)|浏览(146)

这个问题的逆问题是In Python, how to specify a format when converting int to string?
这里我有字符串“0001”到整数1
字符串“0023”到整数23
我希望在Pandas Dataframe 上使用此功能,因为我的列如下所示:

dic = {'UPCCode': ["00783927275569", "0007839272755834", "003485934573", "06372792193", "8094578237"]}
df = pd.DataFrame(data=dic)

我希望它变成这样

dic = {'UPCCode': [783927275569, 7839272755834, 3485934573, 6372792193, 8094578237]}
df = pd.DataFrame(data=dic)

如果我使用int(001)或float(0023),它将显示此错误
语法错误:十进制整数文字中不允许有前导零;对八进制整数使用0 o前缀

k7fdbhmy

k7fdbhmy1#

最好的方法是使用pd.to_numeric

df['UPCCode'] = pd.to_numeric(df['UPCCode'])
print(df)

         UPCCode
0   783927275569
1  7839272755834
2     3485934573
3     6372792193
4     8094578237
fcipmucu

fcipmucu2#

下面是一个快速解决方案,只需使用astype方法:

>>> df = df.astype(int)
>>> df
         UPCCode
0   783927275569
1  7839272755834
2     3485934573
3     6372792193
4     8094578237
erhoui1w

erhoui1w3#

如果您要将此设置仅应用于列“UPCCode”,请执行以下操作:

df = df['UPCCode'].astype(int)
quhf5bfb

quhf5bfb4#

你好我找到了一些方法来做到这一点只是尝试:

df["UPCCode"] = df["UPCCode"].str.strip("0")
df["UPCCode"] = df["UPCCode"].astype(int)

相关问题