Python数据分析常用方法手册29139

上传人:沈*** 文档编号:192217341 上传时间:2023-03-06 格式:PDF 页数:12 大小:358.70KB
返回 下载 相关 举报
Python数据分析常用方法手册29139_第1页
第1页 / 共12页
Python数据分析常用方法手册29139_第2页
第2页 / 共12页
Python数据分析常用方法手册29139_第3页
第3页 / 共12页
点击查看更多>>
资源描述
1.Python 数据处理和分析常用语句 数据分析的一般步骤包括数据获取、数据整理、数据描述、数据分析 1.1数据获取 1.1.1数据获取方式 1.1.2查看数据属性 Data.shape 查看数据多少行、多少列 Data.colu mns 查看数据列 Data.dtypes 查看各数据字段的属性 1.2数据整理#第二步:做一些数据的基本处理:1.2.1数据基本处理(类 excel)#0.数据类型的转换 例如:如果要做时间序列分析,首先要将交易日期从通用对象(object)转换为日期对象(datetime)dfdate=pd.to_datetime(dfdate)#1.如何获取导入的数据有几行几列?直接用 df.shape,返回一个维度(几行,几列)的元组;df.colu mn s.size#获取列数 df.iloc:,0.size#获取行数#2.如何查看指定行、列、子集?#df=pandas.read_excel(1.xls,sheetname=店铺分析日报)df=df.loc:,股票代码,股票名称,营业总收入#访问指定的列#df=df股票代码#DataFrame.ixi ndex_ name#查看指定列#查看指定行#dataframem:n#选择多行#dataframedataframecol35#条件筛选#dataframe.ix0:3,0:5#选择子集#3.如何添加新的列 例 1:添加一个总和栏来显示 Jan、Feb 和 Mar 三个月的销售总额 dftotal=dfJa n+dfFeb+dfMa 门 例 2:把计算结果添加为一个新的列 dfP/E=df.收盘价/df.基本每股收益#新的列名,后面是对应的数值 例 3:在 excel 表最后加一行求各列和 sum_row=dfJa n,Feb,Mar,total.sum()#4.如何删除行列#df_delete=df.drop(result,axis=1)#删除列#DataFrame.drop(index1,index2.)#删除行#5.如何对数据进行排序?dfP/E.size#获取P/E 这列共有多少行 n ewdf=df_delete.sort(P/E)#默认升序排列 sort_index也可以进行排序#6.如何对数据进行筛选?#1筛选出 predictaqi_norm1 这一列大于 100 的行;aqicsvaqicsvpredictaqi_ no rm1100 也可以写为:datadata.收盘价100#2使用&(并)与|(或)实现多条件筛选 aqicsv(aqicsvFID37898)&(aqicsvFID150)|(aqicsv.predictaqi_ no rm110000)|(aqicsv.predictaqi_ norm1 150)#4i sin()用法:筛选某一列数据符合等于规定值(它使得我们可以定义一个列表,里面包含我们所希望查找的值);data7=datadata股票代码.isin(sh600141,sh600754,sh603017,sh603198)#同样,以上这个语句可以用 query()函数来查询,需要安装 numexpr;data8=data.query(股票代码=sh600141,sh600754,sh603017,sh603198)#map()函数也有这个功能,样式如下:dfdfsku.map(lambda x:x.startswith(BI)&(dfqua ntity>22).head()如果只需要其中的某#5字符串方法:筛选某一列内容包含特定值 例如找出 MA 金叉死叉列所有含金叉的行,但列不能含空值 data8=data7data7MA 金叉死叉.str.contains(金叉)#6如果列中存在空值,空值处理方法:#6.1 用 fillna()方法将空值填充 data7=data.fillna(value=你好)#6.2 或者将列中的空值删除;stock_data=stock_datastock_data市盈率 TTM.notnull()#或 6.2 用 dropna 删除缺失值 stock_data.dropna(subset=下个月涨跌幅,inplace=True)#7.pandas 能够理解日期,在对日期数据筛选方面可以对某年、某月 进行筛选;datadata交易日期=2014-03 datadata交易日期=2015 data(data交易日期=20140701)&(data交易日期6.sort(tip,asce ndin g=False)#1.7 对列 sex 分组后,对另一列(tip/total_bill)进行排序 def top(self,n):return self.sort(tip/total_bill,asce ndin g=False):n#top(tips)tips.groupby(sex).apply(top,n=5)#1.8 按照某一列内容的部分字母进行分组排序 比如,某一列由不同星期+日期组成,但只想按照这一列的星期进行排序?#get_day=lambda day:tips.day:1#选择列中的第一个字母,按第一个字母排序#tips.groupby(get_day).apply(top,n=5)#groupby 可以调用函数#1.9 采用多个聚合函数返回多个聚合值 tips2=tips1.groupby(sex,smoke门)total_bill,tip tips2.agg(mea n,sum,std,max)#2.0 计算 tip 和 total_bill 之间的相关系数#corr=lambda x:x.corrwith(xtips)tips_corr=tips.groupby(sex)tips_corr.apply(lambda g:gtip.corr(gtotal_bill)#2.1 根据日价格变化计算各股票之间的年度相关系数 by_year=data.groupby(lambda x:x.year)corr=lambda x:x.corrwith(xSPX)data_by_year=by_year.apply(corr)2.merge 合并 1.Append P=2.Concat 例子 1:使用 concat()函数将两个不同逻辑结构的对象能连接:将股票数据中的前 5 个和后 5 个合并;Data 仁 data:3 Data2=df:3 Pd.c on cat(Data1,Data2,ig nore_in dex=Ture)例子 2:将两个相同逻辑结构的对象能连接 import pan das as pd dates=ra nge(20161010,20161020)pieces=for date in dates:path=overview-push-%d/stock overview.csv%date date=pd.read_csv(path,e ncod in g=gbk)pieces.appe nd(date)datas=pd.c on cat(pieces)3.Join 将美国运通公司和可可可乐公司近一年中每个月的交易总量 表(包含公司代码)琼斯成分股股票信息表合并;Pd.merge(data1,data2,on=code)3.聚类分析 3.1K-均值聚类 scikit-learn 语言包 与 30 只道#K-Mean 聚类的一个小例子 from pylab import*from scipy.cluster.vq import*list 仁88,64,96,85 Iist2=92,99,95,94 Iist3=91,87,99,95 Iist4=78,99,97,81 Iist5=88,78,98,84 list6=100,95,100,92 data=vstack(list1,list2,list3,list4,list5,list6)cen troids,_=kmea ns(data,2)result,_=vq(data,ce ntroids)prin t(result)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!