pandas常用函数
1.导入
2.数据清洗、预处理
3.数据分类、筛选
4.数据统计
5.导出
def main():
#1.导入与查看
df=pd.DataFrame(pd.read_csv('',header=1))
df = pd.DataFrame(pd.read_excel(""))
df=pd.DataFrame({"id":[1001,1002,1003],
"date":pd.range("20191220",periods=6),
"city":["beijing","nanjing","shanghai"],
"value":[10.12,20.23,30.34]
},
columns=["id","date","city","value"])
print(df.shape) #查看行列
df.info()
df.head()
print(df.shape) #数据格式 int64..
print(df.isnull()) #检查数据空值
print(df['city'].isnull())#查看特定列空值
print(df['city'].unique())#查看特定列唯一值
print(df.value) #查看数据表值
print(df.colums) #查看列名
print(df.tail(3)) #查看后3行
#2. 数据清洗、预处理
df.dropna(how="any") #删除表中含有空值的行
df.fillna(value=0) #0填充表中空值
df["value"].fillna(df["value"].mean())#均值填充
df["city"].fillna(df["city"].map(str.strip)) #清除字段中的字符空格
df["city"]=df["city"].str.lower() #大小写转换
df["value"].astype('int') #更改数据格式
df.rename(colums={"value":"value-2"}) # 更改列名
df["value"].drop_duplicates() #删除重复值
df["city"].replace("beijing","beijing2") # 数据替换
df1=pd.DataFrame({"id":[1001,1002,1003],
"gender":["male","female"],
"pay":["y","n","y"],
"m-point":[10.12,20]
},
)
df_inner=pd.merge(df,df1,how="inner")
df_left=pd.merge(df,df1,how="left")
df_right = pd.merge(df, df1, how="right")
df_outer = pd.merge(df, df1, how="outer")
df.inner.set_index("id") #设置索引
df.inner.sort_value(by=["age"]) # 特定列的值排序
#3. 数据分类、筛选
df_inner['group']=np.where(df_inner['price']>3000,"high","low") #price>3000 group 显示high 否则显示low
df_inner.loc[(df_inner['city']=="beijing")&(df_inner['price']>=4000),'sign']=1 #复合条件的数据进行分组标记
print(df_inner.loc[3]) #索引提取单行的数值
print(df_inner.loc[0:5]) #区间取值
df_inner.reset_index() #重设索引
df_inner=df_inner.reset_index("date")#设置日期为索引
print(df_inner[:"20191228"] ) #提取28号前的所有数据
print(df_inner.iloc[:3,:2]) #按位置提取数据
print(df_inner.iloc[[0,2,3], [2,3]]) # 按位置单独提取数据
df_inner['city'].isin(["beijing"])#city列的值是否为beijng
df_inner.groupby("city").count() #对所有列进行计数汇总
df_inner.groupby("city")["id"].count() # 对所有列进行计数汇总
df_inner.groupby(["city",'value'])["id"].count()
#4.数据统计
df_inner.sample(n=3) #简单的数据采样
weights=[0,0,0,0,0.5,0.5] #手动设置采样权重
df_inner.sample(n=2,weights=weights)
df_inner.sample(n=6,replace=False) #采样后不放回
df_inner.sample(n=6, replace=True) #采样后放回
print(df_inner.describe().round(2).T ) #描述性统计
print(df_inner['value'].corr(df_inner["city"])) # 相关性分析
print(df_inner['value'].corr())
#5.写入EXCEL
df_inner.toexcel("save_excel.xlsx",sheet_name="mysheet")
df_inner.to_csv("save_excel.csv")
pass
if __name__=="__main__":
main()