python做简单的数据分析,python数据分析基础和利用python进行数据分析
总结了获取原始数据后用Python进行数据预处理的一般操作。之后根据总结不断更新。
目录、数据波动二、数据转换三、数据清理一、异常值二、重复值三、缺失值四、数据采集五、数据耦合一、1.join、基于列的索引连接二、2.merge、数据框的列连接
查看行列:数据.形状
查看数据详细信息:data.info()),可以检查是否有缺失值。
http://www。Sina.com/data.describe(),可以查看异常数据。
3358www。Sina.com/data.head(10)、data.tail (10))。
33558 www.Sina.com/data.columns.to名单(
查看数值型数据详细信息:数据索引
获取前/后10行数据:数据类型
查看列标签:data.ndim
查看行索引:data.values以2D n数组的形式返回数据框中的数据。
3558 www.Sina.com/seaborn.box地块(数据[列名]))。
www.Sina.com/seaborn.dist地块3558号(数据[列名])。dropna))
2.数据转换器http://www.Sina.com/data.set _索引(date,inplaec=True),并将“日期”列设置为新索引。
3358 www.Sina.com/data.reindex(columns=new _ columns _ list))))))))))))))).
358 www.Sina.com/PD.to _日期时间(数据)"日期"),pd.read _ csv()"通过",parse _ date=[日期])
查看数据类型:
数据[月]=数据[日期].dt.month,
数据[日期]=数据[日期].dt.day,
数据[年份]=数据[日期].dt.year,
数据[季度]=数据[日期]。dt.to _ period [q],
Data [星期几]=data [日期].dt.weekday _ name,
Data [星期几-数字]=data [日期].dt.weekday
查看数据维度:数据[温差类型]=[大温差如果值=10否则正常对于数据中的值[温差]]
三。数据清理1。异常值查看除index外的值:
1.查数据分布,其中电路图的异常值为Q3 1.5IQR和Q1-1.5IQR的上下限,其中Q1、Q 2、Q3为数据的1、2、3分位数,IQR=Q3-Q1。
2、3原则上检查异常值:mean,std=data[列名]。均值(,数据[列名]。标准差),下限,上限=平均值-3 *标准差,平均值3 *标准差。大于上限和小于下限的都被视为异常值。
查看数据分布(箱线图):
1.删除
2.被视为缺失值
3.对数转换:右倾数据不适用于左倾数据。
如果数据是正的或负的,它可以被转换成:
NP.sign(x ) NP.log (NP。ABS ) x )1)).
4.使用阈值:当使用值3作为阈值时
5.对楼梯的影响应用盒法离散处理,如年龄组对Y的影响,但连续年龄没有影响。
2.重复值http://www.Sina.com/data.duplicated.su(
33558 www.Sina.com/data[data . duplicated(keep=false)]
3358 www.Sina.com/data.drop _副本(原地=真).
3.缺失值查看数据分布(直方图):data.isnull)判断缺失值;Data.isnull.sum()计算缺失值的数量。
3358 www.Sina.com/data.drop那(轴=0,h
Ow=) #必须指定删除方向;如何: any 只要有空值就删除, all 都是空值就删除;
fillna填充缺失值
字典填充:data.fillna ({score :0, name :clean bamboo },inplace=true)
方法:数据[name ]。fillna(method=ffill ,axis=),ffill使用前一种填充,bfill使用后一种填充,axis默认为0。
replace填充:数据[列名]。replace (0,df [列名]。mean(),inplace=True)用平均值填充。
四。数据采集获取一列:DATA [列名],data.loc[:列名]返回系列
获取多列:数据[列名列表],并返回DataFrame。
获取一行:切片,数据[[0:1],]必须使用,df[0]会给出错误。
获取多行:data [1: 5],data.loc[[行],[列]]
获取多行中的某几列:数据[1:5][[姓名,年龄]]
通过标签索引:data . loc[行,列]
通过位置获取:data.iloc
条件选取数据:
Data.loc [data [温度]30]
Data.loc[(data[ [最高温度] 30) (data [最低温度]20)]
获取索引为‘2019/9’的记录:
result=[I . starts with( 2019/9 )for I in index _ list]
data . loc[结果,]
动词(verb的缩写)数据合并1.join,它基于索引连接DataFrame的列df1.join (df2,how=) # how= left (默认)、 right 、 inner 和 inner 。
列里面一旦重名,会报错,需要这样操作
df1.join(df2,how= ,lsuffix=_1 ,rsuffix_r )
2 .合并,基于圆柱连接,类似结构化查询语言的join pd.merge(df1,df2,how=) #how=left , right , inner , inner
pd.merge(df1,df2,how= ,on=列名)#开指定列连接,(如果是多列,用列表[])默认方式是内部的
3.concat,合并相同的超过或给数据帧添加行或列时使用pd.concat([df1,df2],asix=) #axis=0(默认),按列拼接;轴=1,按行拼接,ignore_index=False,沿用原来的索引
六、其他操作1.数据分组聚合data.groupby(by=列名).平均值()
聚合函数:将一组数据进行计算返回一个值agg()是进行聚合操作
data.groupby(by=月份)[最高温度].最大()
agg_dict={ 最高温度:[max , mean],最低温度: min}
data.groupby(by=月份).聚集(聚集_字典)
定义顶部(月):
返回month.sort_values(by=最高温度)[-2:]
df.groupby(by=月份,sort=False).应用(顶部)
2.列表生成式中的if…else[I * * 2 for I in index _ list if I 2]# for后面只能写如果判断,不能写其他
[真实表达式如果i.startswith(2019) else False表达式for i in index_list] # for前面可以写如果…否则
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。