给出以下数据框:
import pandas as pd
df = pd.DataFrame(
{'A':['A','B','C','D'],
'C':['1','12','*','8']
})
df
A C
0 A 1
1 B 12
2 C *
3 D 8
我想删除'*'的所有实例并将其余部分转换为整数。 在我的实际数据中可能存在“nan”或“NaN”的一些情况。
答案 0 :(得分:2)
您可以使用pd.to_numeric
将C
列转换为数字值。传递errors='coerce
'告诉pd.to_numeric
将非数字值设置为NaN
。
import pandas as pd
df = pd.DataFrame(
{'A':['A','B','C','D'],
'C':['1','12','*','8'] })
df['C'] = pd.to_numeric(df['C'], errors='coerce')
print(df)
打印
A C
0 A 1.0
1 B 12.0
2 C NaN
3 D 8.0
由于NaN值仅允许在具有浮点dtype(或object
dtype)的列中,因此不能将该列设置为整数dtype。
答案 1 :(得分:0)
int()是Python标准内置函数,用于将字符串转换为整数值。使用int()将列转换为int。
对于解析整数而不是浮点数,可以对字符串对象使用isdigit()函数。
如果在int()之后运行isdigit(),则可以将数据过滤到列C的值为整数的行。