[英]Pandas drop unique row in order to use groupby and qcut
我如何獨特? 它干擾了groupby和qcut。
df0 = psql.read_frame(sql_query,conn)
df = df0.sort(['industry','C'], ascending=[False,True] )
這是我的數據框:
id industry C
5 28 other industry 0.22
9 32 Specialty Eateries 0.60
10 33 Restaurants 0.84
1 22 Processed & Packaged Goods 0.07
0 21 Processed & Packaged Goods 0.14
8 31 Processed & Packaged Goods 0.43
11 34 Major Integrated Oil & Gas 0.07
14 37 Major Integrated Oil & Gas 0.50
15 38 Independent Oil & Gas 0.06
18 41 Independent Oil & Gas 0.06
19 42 Independent Oil & Gas 0.13
12 35 Independent Oil & Gas 0.43
16 39 Independent Oil & Gas 0.65
17 40 Independent Oil & Gas 0.91
13 36 Independent Oil & Gas 2.25
2 25 Food - Major Diversified 0.35
3 26 Beverages - Soft Drinks 0.54
4 27 Beverages - Soft Drinks 0.73
6 29 Beverages - Brewers 0.19
7 30 Beverages - Brewers 0.21
而且我使用了來自pandas和qcut的以下代碼來對列“ C”進行排名,可悲的是,列對我而言是batsh * t。
df['rank'] = df.groupby(['industry'])['C'].transform(lambda x: pd.qcut(x,5, labels=range(1,6)))
經過研究,qcut拋出錯誤的原因是因為行業專欄的獨特價值, 對錯誤的引用以及對err的另一引用 。
雖然,我仍然希望能夠在不放棄唯一性的情況下進行排名(唯一性應分配給值1)。 但是經過如此多的嘗試,我堅信qcut無法處理唯一性,因此我願意接受放棄唯一性以使qcut開心地完成它的事情。
但是,如果還有另一種方法,我很想知道。 非常感謝您的幫助。
以防萬一仍然有人想要這樣做。 您應該只選擇重復項就能做到嗎?
df = df[df['industry'].duplicated(keep=False)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.