簡體   English   中英

Pandas:根據另一列中的字符串值分配分類列

[英]Pandas: assign categorical column based on string values in another column

假設我有一個這樣的數據幀:

     A         B
1    05010001  17
2    05020001  5
3    05020002  11
4    05020003  2
5    05030001  86
6    07030001  84
7    07030002  10
8    08010001  16

我想添加第三列C ,它為A值以05開頭的所有行分配1 ,為從07開始的所有值分配2 ,依此類推。

結果將是:

     A         B    C
1    05010001  17   1
2    05020001  5    1
3    05020002  11   1
4    05020003  2    1
5    05030001  86   1
6    07030001  84   2
7    07030002  10   2
8    08010001  16   3

這樣做最有效的方法是什么? 我的實際數據幀有3,000,000行。

編輯

我實際數據框中的A列稱為First (C) ,帶有空格。 我不被允許改變它。 我是否必須對列的標題進行某種操作?

firstTwo = df.sort_values('A').A.str[:2]            # sort the data frame by column A and 
                                                    # take the first two digits of column A
df['C'] = (firstTwo != firstTwo.shift()).cumsum()   # create ids based on the first two 
                                                    # digits with cumsum
df

在此輸入圖像描述

暫無
暫無

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

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