❶ python之pandas數據整理及分組統計
對數據進行整理以及分組統計
一、數據整理
1、行、列的插入與刪除
2、索引整理
3、重復值處理
4、排序,排名
5、數據框連接
6、數據分段
pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)
x:需要切分的數據
bins:切分區域
right : 是否包含右端點默認True,包含
labels:對應標簽,用標記來代替返回的bins,若不在該序列中,則返回NaN
retbins:是否返回間距bins
precision:精度
include_lowest:是否包含左端點,默認False,不包含
7、多級索引
8、字元串處理
類似於Python
二、分組統計
❷ python--pandas分組聚合
groupby 方法是pandas中的分組方法,對數據框採用 groupby 方法後,返回的是 DataFrameGroupBy 對象,一般分組操作後會進行聚合操作。
對數據框按 A 列進行分組,產生分組數據框。分組數據框是可迭代對象,可以進行循環遍歷,可以看出在循環中,每個元素的類型是元組,
元組的第一個元素是分組值,第二個元素是對應的分組數據框。
可以對分組後的數據框直接使用聚合方法 agg ,對分組數據框的每一列計算統計函數值。
可以根據數據框外的序列數據對數據框進行分組,需要注意 序列長度需要與數據框行數相同 。
可以根據數據框的多列對數據框進行分組。
根據 A , B 列進行分組,然後求和。
可以根據索引對數據框進行分組,需要設置 level 參數。
數據框只有一層索引,設置參數 level=0 。
當數據框索引有多層時,也可以根據需求設置 level 參數,完成分組聚合。
設置 level 參數,如需要根據第一層索引,即 id1 進行分組,可以設置 level=0 或 level='id1' 完成分組聚合。
分組後一般會進行聚合操作,用 agg 方法進行聚合。
對分組後數據框使用單個函數進行聚合,單個聚合函數會對每列進行計算,然後合並返回。聚合函數以字元串的形式傳入。
可以對分組後的數據指定列進行分組聚合。需要注意 子列需要用[]包裹 。
聚合函數也可以傳入自定義的匿名函數。
聚合函數可以是多個函數。聚合時,多個聚合函數會對每列進行計算,然後合並返回。聚合函數以列表的形式傳入。
聚合返回後的數據列名有兩層索引,第一層是聚合的列名,第二層是使用的聚合函數名。如果需要對返回的聚合函數名重命名,
需要在傳參時,傳入元組,第一個元素為聚合函數名,第二個元素為聚合函數。
同樣,也可以傳入匿名函數。
如果需要對不同的列進行不同的聚合計算,則需要傳入字典的形式。
可以重命名聚合後的列名,注意 只能對一列傳入一個聚合函數時有效 。
❸ python 字元分組
按照你的思路,以/為分割條件
使用字元串的find方法
S.find(substr, [start, [end]])
#返回S中出現substr的第一個字母的標號,如果S中沒有substr則返回-1。start和end作用就相當於在S[start:end]中搜索
查找到/ask/之後出現的第一個/
這樣可以得到兩個/之間的這個單詞,也就是分類的名字
計數問題可以使用python字典來進行,key不會重復,相同的key對value+1
keywords={}
start_idx=5
withopen('C:\Users\admin\Desktop\a.txt')asf:
forlineinf:
idx=line.find('/',start_idx)
ifidx!=-1:
key=line[start_idx:idx]
ifkeywords.has_key(key):
keywords[key]+=1
else:
keywords[key]=1
printkeywords
以上代碼僅供參考