0
我有一個Pandas DataFrame
描述一些測試版本,看起來像這樣中識別的特殊值:大熊貓重新標記行到GROUPBY
MailingName EmailSubject MailingID
Promo_v1s1 Hello! A8FEFE
Promo_v1s2 Line 2 A8FEFE
Promo_v2s1 Line 2 A8FEFE
Promo_v2s2 Yo! A8FEFE
Promo_v2S3 Hello! A8FEFE
deal_v2s1 Line 2 bbb
deal_v2s2 Yo! bbb
deal_v2ss Hello bbb
同樣的郵寄活動,與不同版本的測試,可以通過MailingID
標識(所以這將是更多特徵的groupby
術語)。
爲MailingName
,這些文件的命名約定是v + a number
表示所測試的電子郵件正文版本,s + a number
表明,在一個特定的組合測試的電子郵件主題行。但是,即使共享mailingID,來自v1s1
的主題行不一定與v2s2
中的主題行相同,因此該約定沒有幫助。
我想在每個MailingID
組中都有實際上相同的所有電子郵件主題行,它們具有相同的「主題行版本號」。所以我想創造另一列會導致這樣的事情:
MailingName EmailSubject MailingID TrueEmailVersionNumber
Promo_v1s1 Hello! A8FEFE 1
Promo_v1s2 Line 2 A8FEFE 2
Promo_v2s1 Line 2 A8FEFE 2
Promo_v2s2 Yo! A8FEFE 3
Promo_v2S3 Hello! A8FEFE 1
deal_v2s1 Line 2 bbb 1
deal_v2s2 Yo! bbb 2
deal_v2ss Hello bbb 3
基本上我想添加獨特的標籤,每個組,到列。我如何使用Pandas
來做到這一點?
我得到一個首發於笨重的方式,像這樣的一個想法:
def processThis(x):
uni = list(set(x))
keys = {x_i:uni.index(x_i) for x_i in x}
return keys
ab_data.groupby('mailing_id')['subject'].apply(processThis)
但其實這並沒有屈服背字典的列表,所以即使我的第一個步驟是一個非首發。感謝您的任何建議!