Python:如何将列中只有数字分量的字符串条目转换为整数? [复制]
Posted
技术标签:
【中文标题】Python:如何将列中只有数字分量的字符串条目转换为整数? [复制]【英文标题】:Python: How to convert string entries with only numeric components in a column to integer? [duplicate] 【发布时间】:2020-05-31 20:18:24 【问题描述】:我有一个包含字符串类型列的数据框,其中包含字符和数字条目。
下面是一个例子 df:
A B
101a5 12222
11111 e2edw2
22222 33333
asxaa 0045
我想将字符串中只有数值的条目转换为整数,但将其余部分保留为字符串。
最好的方法是什么?
提前致谢!
【问题讨论】:
因为你在一列中有混合类型,所以无论如何你都会得到object
dtype。
【参考方案1】:
您可以使用以下功能:
def func(x):
try:
return int(x)
except ValueError:
return x
df = df.applymap(func)
print(df.applymap(type))
输出:
A B
0 <class 'str'> <class 'int'>
1 <class 'int'> <class 'str'>
2 <class 'int'> <class 'int'>
3 <class 'str'> <class 'int'>
【讨论】:
【参考方案2】:只需将数据帧转换为整数并忽略任何可能返回原始字符串的错误。
再简单不过了……
df.astype(int, errors='ignore')
# pandas 1.0.0
>>> df.astype(int, errors='ignore').applymap(type)
A B
0 <class 'str'> <class 'int'>
1 <class 'int'> <class 'str'>
2 <class 'int'> <class 'int'>
3 <class 'str'> <class 'int'>
【讨论】:
谢谢!成功了!以上是关于Python:如何将列中只有数字分量的字符串条目转换为整数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Python Pandas:如何将列中的分组列表作为字典返回
Python Pandas:通过重复项将列组合在一起,并在相应列中连接字符串
将列中的大量地址(10000)信息列表转置到 csv 中,然后在 mysql 中上传