pandas 数据预处理
1.缺失值 处理
# 读取 Excel 文件
df = pd.read_excel('data.xlsx', sheet_name="Sheet1", header=0)
# 缺失值查看
print(df.info())
print(df.isnull())
# 缺失值删除
print(df.dropna()) # 默认删除含有缺失值的整行,返回删除后的数据。
print(df.dropna(how="all"))# 只会删除那些全为空值的行,不全为空值的行就不会被删除
# 缺失值填充
print(df.fifillna(0))
print(df.fifillna({"列1":"value1","列3","value3"}))
Python中缺失值一般用NaN表示
2.重复值 处理
df = pd.read_excel('data.xlsx', sheet_name="Sheet1", header=0)
# 利用drop_duplicates(),保留第一个
print(drop_duplicates()) # 默认对所有值进行重复值判断,且默认保留第一个(行)值
# 某列/某几列进行重复值删除
print(drop_duplicates(subset="列名称"))
print(drop_duplicates(subset=["列名称1","列名称2","列名称3"))
# 自定义删除项
print(drop_duplicates(subset=["列名称1","列名称2"],keep="last")) # 保留最后 一个值
print(drop_duplicates(subset=["列名称1","列名称2"],keep=False)) # 不保留任何一个重复值
3.数据类型转换
3.1数据类型
类型 | 说明 |
---|---|
int | 整型数,即整数 |
float | 浮点数,即含有小数点的数 |
object | Python对象类型,用0表示 |
string_ | 字符串类型,经常用S表示,S10表示长度为10的字符串 |
unicode_ | 固定长度的unicode类型,跟字符串定义方式一样 |
datetime64[ns] | 表示时间格式 |
在 Python 中,不仅可以用 info()方法获取每一列的数据类型,还可以通过 dtype方法来获取某一列的数据类型。
print(df["列名称"].dtype)
3.2类型转换
利用astype()
方法对数据类型进行转换,astype后面的括号里指明要转换的目标类型即可。
print(df["列名称"].astype("float64"))
4.索引设置
# 设置表列索引
df.columns = ["lie1", 'lie2', "lie3"]
print(df)
# 设置表行索引
df.index = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(df)
# 重新设置索引列
print(df.set_index("指定列名称"))
# 重命名索引
print(df.rename(columns={"一": "新列名称1",
"二": "新列名称2"},
index={1: "新列名称1",
2: "新列名称2"}
))
print(df) # rename操作,表格数据本身没有变化