python聚合函数 python聚合函数整数列表求最大,最小,平均值( 六 )


print(df[['row_names','Rape']])
df['行标签']
df.loc[行标签,列标签]
print(df.loc[0:2,['Rape','Murder']])
df.iloc[行位置,列位置]
df.iloc[1,1]#选取第二行,第二列的值,返回的为单个值
df.iloc[0,2],:]#选取第一行及第三行的数据
df.iloc[0:2,:]#选取第一行到第三行(不包含)的数据
【python聚合函数 python聚合函数整数列表求最大,最小,平均值】df.iloc[:,1]#选取所有记录的第一列的值 , 返回的为一个Series
df.iloc[1,:]#选取第一行数据,返回的为一个Series
print(df.ix[1,1])# 更广义的切片方式是使用.ix,它自动根据你给到的索引类型判断是使用位置还是标签进行切片
print(df.ix[0:2])
#DataFrame根据条件选取子集类似于sas里面if、where ,R里面的subset之类的函数
df[df.Murder13]
df[(df.Murder10)(df.Rape30)]
df[df.sex==u'男']
#重命名相当于sas里面的renameR软件中reshape包的中的rename
df.rename(columns={'A':'A_rename'})
df.rename(index={1:'other'})
#删除列相当于sas中的dropR软件中的test['col']-null
df.drop(['a','b'],axis=1)ordeldf[['a','b']]
#排序相当于sas里面的sortR软件里面的df[order(x),]
df.sort(columns='C')#行排序y轴上
df.sort(axis=1)#各个列之间位置排序x轴上
#数据描述相当于sas中proc menasR软件里面的summary
df.describe()
#生成新的一列跟R里面有点类似
df['new_columns']=df['columns']
df.insert(1,'new_columns',df['B'])#效率最高
df.join(Series(df['columns'],name='new_columns'))
#列上面的追加相当于sas中的appendR里面cbind()
df.append(df1,ignore_index=True)
pd.concat([df,df1],ignore_index=True)
#最经典的join跟sas和R里面的merge类似跟sql里面的各种join对照
merge()
#删除重行跟sas里面nodukeyR里面的which(!duplicated(df[])类似
df.drop_duplicated()
#获取最大值最小值的位置有点类似矩阵里面的方法
df.idxmin(axis=0 ) df.idxmax(axis=1)0和1有什么不同自己摸索去
#读取外部数据跟sas的procimportR里面的read.csv等类似
read_excel()read_csv()read_hdf5() 等
与之相反的是df.to_excel()df.to_ecv()
#缺失值处理个人觉得pandas中缺失值处理比sas和R方便多了
df.fillna(9999)#用9999填充
#链接数据库 不多说pandas里面主要用 MySQLdb
import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="mysql",use_unicode=True,charset="utf8")
read_sql() #很经典
#写数据进数据库
df.to_sql('hbase_visit',con, flavor="mysql", if_exists='replace', index=False)
#groupby跟sas里面的中的byR软件中dplyr包中的group_bysql里面的group by功能是一样的 这里不多说
#求哑变量
dumiper=pd.get_dummies(df['key'])
df['key'].join(dumpier)
#透视表和交叉表跟sas里面的procfreq步类似R里面的aggrate和cast函数类似
pd.pivot_table()
pd.crosstab()
#聚合函数经常跟group by一起组合用
df.groupby('sex').agg({'height':['mean','sum'],'weight':['count','min']})
#数据查询过滤
test.query("0.2
将STK_ID中的值过滤出来
stk_list = ['600809','600141','600329']中的全部记录过滤出来,命令是:rpt[rpt['STK_ID'].isin(stk_list)].
将dataframe中,某列进行清洗的命令
删除换行符:misc['product_desc'] = misc['product_desc'].str.replace('\n', '')
删除字符串前后空格:df["Make"] = df["Make"].map(str.strip)
如果用模糊匹配的话 , 命令是:
rpt[rpt['STK_ID'].str.contains(r'^600[0-9]{3}$')]
对dataframe中元素,进行类型转换
df['2nd'] = df['2nd'].str.replace(',','').astype(int) df['CTR'] = df['CTR'].str.replace('%','').astype(np.float64)

推荐阅读