像Excel一样使用Python进行数据分析 Dataframe

来源:互联网 发布:js 创建json数组 编辑:程序博客网 时间:2024/06/06 08:54

转载地址:

http://www.cnblogs.com/zoe233/p/7026229.html



1 导入数据表

import pandas as pd

df = pd.Dataframe(pd.read_excel("name.xlsx"))


2 数据查看

df.shape  查看维度

df.dtypes 查看类型

df.info() 

df.describe()

df.isnull() 空值的返回true 否则false

df["city"].unique() 返回唯一值

df.values 数值数组

df.columns 列名称

df.index 索引

df.head()  前几行数据

df.tail() 末尾几行数据



3数据清洗


a 处理空值

df.dropna() Dropna函数用来删除数据表中包含空值的数据

df.fillna()对空值进行填充


b 清理空格

df["city"].str.strip() 字符串,删除首尾空格


c 大小写转换 lower() upper()

df["city"] = df["city"].str.lower()


d 更改数据格式

df["price"].astype("int")


e  更改列名称

df.rename(columns = {"city":"newcity"})


f 删除重复值

df["city"].drop_duplicates()


g 替换

df["city"].replace("sh","shanghai")



4数据预处理

a 数据表合并 

pd.merge(df , df1 , how = , on = )


b 设置索引列

df.set_index("id")


c 排序

按索引排序 df.sort_index()

按列值排序 df.sort_values(by = ["age"])


d 数组分组

df["group"] = np.where(df["price"] > 300 , "high","low")

df["sign"]=np.where((df.price > 300) & (df.city == "beijing") , 1 , np.nan)  等价于

df.loc[(df.price > 300) & (df.city == "beijing"),"sign2"] = 1

e 数据分列

splits = pd.Dataframe(x.split("-") for x in df.category, index = df.index , columns = ["category1","size"])

df = pd.merge(df , splits, right_index = True , left_index = True)


5 数据提取

a 按标签或位置提取

df.loc[]    loc函数按数据表的索引标签进行提取

df.iloc[]  按位置

df.ix[]  按标签和位置

b 按条件提取

df.loc[df.city isin(["shanghai"])]

c 提取部分字符

df.city.str[:3]


6数据筛选 

a 采用loc函数 和条件

>, == ,>= , != , & , | ,  

df.loc[(df.price >= 300) | (df.city == "beijing")] 

b  配合sum() , count() , sort_values()等函数

df.loc[(df.price >= 300) | (df.city == "beijing"), ].sort_values(by = 'age')

df.loc[(df.price >= 300) | (df.city == "beijing"), ].sort_values(by = 'age').price.sum()

c 使用query()函数

df.query('city == ["beijing","shanghai"]').price.sum()


d 分类汇总 groupby函数 , 并制定分组后的汇总方式,常见的是计数,求和,最大值,最小值,均值

df.groupby("city").count() 对所有列进行计数汇总

df.groupby("city")["id"].count() 对特定的id列进行计数汇总

df.groupby(["city","size"])["id"].count() 对两个字段进行计数汇总

df.groupby("city")["price"].agg([len , np.sum , np.mean]) 对汇总结果进行多维度的计算

e 数据透视 pivot_table


7 数据统计

a 数据采样

df.sample(n = 3) 

b 描述统计

df.describe().round(2).T

c 标准差

df.price.std()

d 协方差

df.price.cov(df.age) 两个字段的协方差

df.cov() 各列间的协方差

e 相关系数

df.price.corr(df.age) 

df.corr() 各字段间的相关性






阅读全文
0 1
原创粉丝点击