簡體   English   中英

將 pandas dataframe 中的值組合為字符串

[英]Combine values in pandas dataframe to string

我有一個類似於此的 dataframe:

       Male  Over18  Single
0     0       0       1
1     1       1       1
2     0       0       1

我想要一個額外的列,它會得到一個逗號分隔的字符串,其中列名的值為 1:

   Male  Over18  Single        CombinedString
0     0       0       1                Single
1     1       1       1  Male, Over18, Single
2     0       0       1                Single

希望有人可以提供幫助:)

一種熊貓方法是使用列標題執行 pandas 點積:

df['CombinedString'] = df.dot(df.columns+',').str.rstrip(',')
df

   Male  Over18  Single      CombinedString
0     0       0       1              Single
1     1       1       1  Male,Over18,Single
2     0       0       1              Single

另一種方法是使用.stack()groupby.agg()

df['CombinedString'] = df.mask(df.eq(0)).stack().reset_index(1)\
                     .groupby(level=0)['level_1'].agg(','.join)


print(df)

   Male  Over18  Single      CombinedString
0     0       0       1              Single
1     1       1       1  Male,Over18,Single
2     0       0       1              Single

暫無
暫無

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

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