我有一个具有dtype作为对象的Series Dataobject。 它包含str格式的int以及许多字符串。我想只将int转换为int类型和del rest。
示例:
'1','3','sd34','4','r5'
结果:
[1, 3, 4]
答案 0 :(得分:5)
这是一个简单的单行。
output = [int(s) for s in data_list if s.isdecimal()]
如果数据集很大,您也可以使用生成器表达式。对于数据的单次迭代,这将具有更高的内存效率。
output_gen = (int(s) for s in data_list if s.isdecimal())
最后一个选项,如果你希望效率极高,那就是使用完整的C级迭代器:
output_gen = map(int, map(str.isdecimal, data_list))
答案 1 :(得分:-1)
data = ['1','3','sd34','4','r5']
result = []
for d in data:
try:
result.append(int(d))
except:
pass