如何根據字符串層次結構對 Pandas 數據框進行分組?

尼克·斯萊克

給定這樣的數據框:

客戶 優先事項
客戶 1 低的
客戶 1 中等的
客戶 2 低的
客戶 2 高的
客戶 3 低的

我想按客戶端分組並為每個客戶端選擇最高優先級(低、中、高)。它應該是這樣的:

客戶 優先事項
客戶 1 中等的
客戶 2 高的
客戶 3 低的
sammywemmy

priority在分組之前轉換為分類列:

dtype = pd.CategoricalDtype(['High', 'Medium', 'Low'], ordered = True)

df['Priority'] = df.Priority.astype(dtype)

df.sort_values(['Client', 'Priority']).groupby('Client', sort = False).head(1)

     Client Priority
1  Client 1   Medium
3  Client 2     High
4  Client 3      Low

如果您不想轉換為類別,則可以映射位置:

(df.assign(temp = df.Priority.map({'Low':3,'Medium':2, 'High':1}))
   .sort_values(['Client', 'temp'])
   .drop(columns='temp')
   .groupby('Client')
   .head(1)
)
     Client Priority
1  Client 1   Medium
3  Client 2     High
4  Client 3      Low

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根據pandas中的字典對數據框的行進行分組並對相應的分子求和

如何通過對多個變量進行分組來創建新的 Pandas 數據框?

使用分類字符串對熊貓數據框進行分組

根據條件(包含特定字符串)對數據進行分組

對深度層次結構的數據進行分組時如何處理 SQL 聚合函數

對熊貓數據框列進行分組和計數

如何使用 tidyr/dplyr 對數據框的元素進行分組和選擇

如何以特定方式對我的數據框進行分組和轉置?

如何根據特定函數對數組進行分組?

對列表中的數據框列進行分組

按特定列值對數據框進行分組

對來自熊貓數據框的連續值進行分組

使用 Pandas,如何根據包含字符串元素列表中的字符串元素的所有值對錶格進行排序?

按兩列對熊貓數據框進行分組而不對其進行匯總

如何在沒有任何統計數據(如 Pandas 中的均值或計數)的情況下進行簡單分組?

按列值對數據進行分組

Angular/RXJS,如何根據特定字符串值對 Observable 對像數組進行排序?

如何在js中對數組中的數據進行分組

按其他數據框對數據框列進行分組併計算聚合列的加權平均值

如何根據pandas中的列表更改字符串

對 pandas 中已分組的數據使用 groupby

按特定鍵對嵌套數組數據進行分組

使用 Pandas 數據框進行旋轉和轉置

在 Pandas 數據框中的一組行之後提取行窗口

R:如何對數據框列中的字符串進行子集化?

R:如何對數據框列中的字符串進行子集化?

如何根據字符串拆分列,清理數據,然後對其進行計算?

如何通過對數據進行分組來返回唯一的行

按列值對結果集數據的多行進行分組