在用正则表达式对数据进行filtering的时候,出现字符串和整数变量不匹配的问题,例如:
给3加上引号就好了:'3'
但是为什么10000不需要加引号,而3需要呢?这是因为他们的变量类型不一样的,于是总结一下查看DataFrame中每列变量类型的方法:
方法一:使用.info()
最右端会出现各列的变量类型
方法二:.dtypes
发现Population列是int64型的变量,因此可以直接与10000进行比较运算符,而Climate是字符类型,所以需要加上' '才能进行比较运算符
方法三:只想筛选指定类型的数据时
cols = df.columns
for col in cols:if str(df[col].dtype) == 'object':print(col)
设置数据类型:
import pandas as pddata = [['Google', 10], ['Runoob', 12], ['Wiki', 13]]# 创建DataFrame
df = pd.DataFrame(data, columns=['Site', 'Age'])# 使用astype方法设置每列的数据类型
df['Site'] = df['Site'].astype(str)
df['Age'] = df['Age'].astype(float)print(df)