簡體   English   中英

熊貓groupby和qcut

[英]Pandas groupby and qcut

有沒有辦法構建Pandas groupby和qcut命令返回一個具有嵌套切片的列? 具體來說,假設我有2組數據,我希望qcut應用於每個組,然后將輸出返回到一列。 這類似於MS SQL Server的ntile()命令,允許Partition by()。

     A    B  C
0  foo  0.1  1
1  foo  0.5  2
2  foo  1.0  3
3  bar  0.1  1
4  bar  0.5  2
5  bar  1.0  3

在上面的數據框中,我想將Qcut函數應用於B,同時在A上進行分區以返回C.

import pandas as pd
df = pd.DataFrame({'A':'foo foo foo bar bar bar'.split(),
                   'B':[0.1, 0.5, 1.0]*2})

df['C'] = df.groupby(['A'])['B'].transform(
                     lambda x: pd.qcut(x, 3, labels=range(1,4)))
print(df)

產量

     A    B  C
0  foo  0.1  1
1  foo  0.5  2
2  foo  1.0  3
3  bar  0.1  1
4  bar  0.5  2
5  bar  1.0  3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM