import pandas as pd
import numpy as np
# 创建数据表,np.nan代表null值
df=pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],
"date":pd.date_range('20130102', periods=6),
"city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
"age":[23,44,54,32,34,32],
"category":['100-A','100-B','110-A','110-C','210-A','130-F'],
"price":[1200,np.nan,2133,5433,np.nan,4432]},columns =['id','date','city','category','age','price'])
df.head()
# 删除数据表中含有空值的行
df.dropna(how='any') #inplace=True参数代表替换原df
# 使用数字0填充控制
df.fillna(value=0)
# 使用均值对NA进行填充
df['price'].fillna(value=df['price'].mean())
# 清理city字段中的空格
df['city']=df['city'].map(str.strip)
df
# 大小写转换
df['city'].str.lower() #df['city'].str.upper()
#更改数据格式astype,dtype查看数据格式
df['price'].dtype
df.fillna(value=0,inplace=True) #na无法更改类型,需要先填充
df['price']=df['price'].astype('int')
df['price']
df.dtypes #注意dataframe的dtypes是带s的
# 更改列名称,传入字典代表后一个替换前一个
df.rename(columns={'category':'category-size'})
# 删除重复值
print(len(df.city.unique())) #查看city的唯一值数量
df['city'].drop_duplicates()
# 删除重复值,keep='last',保留最后出现的值
df['city'].drop_duplicates(keep='last')
# 数据替换
df['city'].replace(to_replace='sh',value='shanghai')