讀取html
pandas.read_csv()
形狀python
print df1.describe() print df1.shape print df1.columns print df1.index
篩選列函數
df1[['playerID','nameFirst','nameLast','HR']]
篩選行spa
df1[(df1['AB']>=500)&(df1['yearID']==1977)]
分組.net
df1.groupby(['nameFirst','nameLast'])
簡單聚合:code
df1.groupby(['playerID']).count()
相似的還有min() max() sum() median() mean() quantile() var() std()htm
agg聚合:blog
求和聚合(若是想保留其餘列,則形如:'nameFirst':'first','nameLast':'first' )排序
df1.groupby(['playerID']).agg({'HR':'sum','nameFirst':'first','nameLast':'first'})
最大值聚合(若是想保留其餘列,則需使用merge)索引
df9=df1.groupby('yearID').agg({'H':'max'}) df9=pd.merge(df9,df1,on=['yearID','H'],how='left')
排序:
df1.sort_values('SB',ascending=False)
選取某一列最大值所在的行:
df1.loc[df1[['HR']].idxmax(),:]
注意是loc,若是是最小值就是idxmin()
若是有多個最大值要都選出來,則須要用鏈接merge()
https://blog.csdn.net/oYeZhou/article/details/82378160
左外鏈接:(鏈接後行數與左表df9相同)
df9=pd.merge(df9,df1,on=['yearID','H'],how='left')
右外鏈接則how='right'
將索引轉換爲列數據:
groupby和agg以後獲得的dataframe的索引咱們一般須要將其轉爲列數據:
df2=df1.groupby(['playerID','yearID']).agg({'HR':'sum','nameFirst':'first','nameLast':'first'}).reset_index()
求dataframe中某一列的無重複長度(轉爲set)
len(set(df2['playerID']))
python list 求出現次數最多的元素及其出現次數(衆數)
#python list求衆數 def cal_mode(mylist): #兩種特殊狀況 if len(mylist)==0: return [None,0] elif len(mylist)==1: return [mylist[0],1] #4個臨時變量 temp_elem=mylist[0] max_elem=temp_elem temp_num=1 max_num=temp_num #從1開始 for i in range(1,len(mylist)): if mylist[i]==temp_elem: temp_num+=1 else: if max_num<temp_num: max_num=temp_num max_elem=temp_elem temp_num=1 temp_elem=mylist[i] #最後收尾 if max_num<temp_num: max_num=temp_num max_elem=temp_elem return [max_elem,max_num]
排序:
mylist.sort() 直接改變mylist,返回值爲空
sorted(mylist) 不改變mylist,返回值爲結果
sort()不能對字典排序,sorted()能夠
sort()和sorted()都支持傳入一個函數進行來自定義比較
參考
https://www.cnblogs.com/JahanGu/p/7650109.html
遍歷行:參考:https://blog.csdn.net/ls13552912394/article/details/79349809
for index, row in df.iterrows(): print row["c1"], row["c2"]