一 学习数据挖掘,如果是用Python的话,必须掌握好科学计算的相关库,我先学习了pandas的一些具体操作代码 
#-*- encoding:utf-8 -*-import numpy as npimport osimport pylab as plimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as plt# s = pd.Series([1, 2, 3, np.nan, 4, 5])#     # print s# dates =  pd.date_range('20171001',periods=6)# # print dates# df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))# #index索引   columns 纵列# # print df# df2 =  pd.DataFrame({#     'A':20.,#     'B':pd.Timestamp('20171026'),#     'C':pd.Series(1,index=list(range(4)),dtype='float32'),#     'D':np.array([3] * 4 ,dtype = 'int32'),#     'E':pd.Categorical(['a','b','c','d']),#     'F':'chen'## print df2# print df2.dtypes# print df.head()#头# print df.tail()#尾# print df.index#索引# print df.columns4# print df.values# print df.describe()一些数学数据# print df.T#转置矩阵# print df.sort_index(axis=1,ascending=False)#ABCD排序# print df.sort_values(by='B')#只排序B列# print df['A']# print df[0:3]#前三行# print df['20171001':'20171003']# print df.loc[dates[0]]#出现第一行,变为竖列# print df.loc[:,['A','B']]# print  df.loc[dates[0],['A','B']]#dates表示就是第几行的数据# print df.loc['20171001':'20171003',['A','B']]# print df.loc['20171001',['A','B']]#一行就会变成竖列# print df.loc['20171003','A']# print df.iloc[3]#第三行的所有参数# print df.iloc[3:5,0:3]#三四行,前三列# print df.iloc[[1,3,5],[1,3]]# print df.iloc[[1,3,5],:]#所有列# print df.iloc[:,[1,3]]#所有行,第二列和第四列# print df.iloc[3,3]#获取一个值第四行第四列# print df.iat[1,1]# print df.iloc[1,1]快速访问一个标量# print df[df.A>0]#选取A列大于 0 的行# print df[df>0]#选取大于0 的值# df2 = df.copy()# df2['E']=['one', 'one','two','three','four','three']#添加一列# print df2[df2['E'].isin(['two'])]#筛选出E列为two的那一行# gg = pd.Series([1,2,3,4,5,6,7,8,9],index=pd.date_range('20171026', periods=9))# print gg# df.at[dates[0],'A']=10修改值按照标签# print df.iat[0,1] = 0#按照位置赋值# df.loc[:,'D'] = np.array([5] *len(df))# print df# df2 = df.copy()# df2[df2<0] = -df2#全部转化为正值后者负值# print df2# df1 = df.reindex(index=dates[0:4],columns = list(df.columns)+['E'])# df1.loc[dates[0]:dates[1],'E']= 1# # df1.iloc[[0,1],[4]] = 1# df1 = df1.dropna(how='any')#删除值为空的行# df1=df1.fillna(value=5)#填满空值# df1 = pd.isnull(df1)#检测是否为空值# print df.mean(1)#每行的平均值# print df.mean()#每列的平均值# s = pd.Series([1,3,5,np.nan,6,8],index=dates).shift(2)#不同纬度 的对象进行操作# df = df.sub(s, axis='index')#减法# print df# df = df.apply(np.cumsum)#累加# print df# print df.apply(lambda x: x.max() - x.min())# s = pd.Series(np.random.randint(2,7,size=10))#产生2到6之间的随机数,会有十行为0到 9# g =s.value_counts()#出现值和值出现的频率# #s = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat']#处理字符串# s.str.lower()#处理字符串# df = pd.DataFrame(np.random.randn(10, 4))#随机生成十行四列的矩阵# pieces = [df[:3],df[3:],df[:6]]#连接不通的对象# g = pd.concat(pieces)# left = pd.DataFrame({'key': ['foo', 'foo'], 'lval': [1, 2]})# right = pd.DataFrame({'key':['foo','foo'],'lval':[3,4]})# g = pd.merge(left,right, on ='key')#  X*Y的形式相加# df = pd.DataFrame(np.random.randn(10,4),columns=['A','B','C','D'])# s = df.iloc[3]#第三行位置# df = df.append(s,ignore_index=True)#添加# df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',#                                                'foo', 'bar', 'foo', 'foo'],#                 'B': ['one', 'one', 'two', 'three',#                                                   'two', 'two', 'one', 'three'],#               'C': np.random.randn(8),#                                        'D': np.random.randn(8)})# df = df.groupby('B').sum()#把B列中相同的值对应的值求和# df = df.groupby(['A','B']).sum()#把AB列两个系数当做key,对相同的key的值求和# tuples = list(zip(*[['bar', 'bar', 'baz', 'baz',#                     'foo', 'foo', 'qux', 'qux'],#                   ['one', 'two', 'one', 'two',#                      'one', 'two', 'one', 'two']]))# index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])#定义两个属性# df = pd.DataFrame(np.random.randn(8,2),index=index,columns=['A','B'])# df2 = df[:5]# print df2# stacked = df2.stack#展示每行一个数据,A,B作为key# stacked.unstack()#返回原来结构# print stacked# df = pd.DataFrame({'A': ['one', 'one', 'two', 'three'] * 3,#                     'B': ['A', 'B', 'C'] * 4,#                     'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 2,#                 'D': np.random.randn(12),#                   'E': np.random.randn(12)})# print df# # df= pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])#产生数据透视表# # print df# rng = pd.date_range('20171026',periods=100,freq='H')# ts = pd.Series(np.random.randint(0,500,len(rng)),index = rng)#通过时间采样# g  = ts.resample('5Min').sum()#转换频率# rng = pd.date_range('3/6/2012 00:00', periods=5, freq='D')# ts = pd.Series(np.random.randn(len(rng)), rng)# ts_utc = ts.tz_localize('UTC')#时区表示# ts_utc.tz_convert('US/Eastern')#改变为其他时区# print ts# rng = pd.date_range('1/1/2012', periods=5, freq='M')# ts = pd.Series(np.random.randn(len(rng)), index=rng)# ps = ts.to_period()#去除日# # ps.to_timestamp()#添加  日# df = pd.DataFrame({"id":[1,2,3,4,5,6], "raw_grade":['a', 'b', 'b', 'a', 'a', 'e']})# df["grade"] = df["raw_grade"].astype("category")#转换原始类别为分类数据类型# df["grade"].cat.categories = ["very good", "good", "very bad"]#重新命名分类为更有意义的名称# df["grade"] = df["grade"].cat.set_categories(["very bad", "bad", "medium", "good", "very good"])#按照这个顺序排列,改变原来顺序# s =  df.sort(columns="grade")#排列分类中的顺序,不是按词汇排列.# print df.groupby("grade").size()# 类别列分组,并且也显示空类别.显示每个类别的数量ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))# ts = ts.cumsum()# ts.plot()# pl.show()# df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,#                columns=['A', 'B', 'C', 'D'])# df = df.cumsum()# df.plot()# plt.legend(loc='best')# pl.show()df.to_csv('foo.csv')pd.read_csv('foo.csv')df.to_excel('foo.xlsx', sheet_name='Sheet1')#写入excel文件pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'#读取excel文件

更多相关文章

  1. 【python网络爬虫三】爬取动态数据及数据入库
  2. 数据挖掘(三)分类模型的描述与性能评估,以决策树为例
  3. 用于Python项目的低内存和最快查询数据库
  4. python爬虫:爬取豌豆荚APP第一页数据信息(selenium)
  5. Pandas 文本数据方法 findall( )
  6. TensorFlow数据集(一)——数据集的基本使用方法
  7. python常用数据类型-字典
  8. python脚本下载并解码MNIST数据遇到的问题
  9. python爬虫学习之post数据的传送

随机推荐

  1. android点击状态分析
  2. Android Studio 提示错误:No IDEA annotat
  3. Spinner弹出位置变化
  4. Android中UI线程与后台线程交互设计的5种
  5. Android 版本分布数据:Android 2.3 估超过
  6. 如何保证手机端的app访问web服务器的安全
  7. android ImageView 控件
  8. android中@+id 与@string的使用
  9. Android EditText样式自定义
  10. 【Android】Android设计准则