[英]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.