如何解决如何将数据框行合并为单个行,并为每一列浓缩所有行值?
我有一个df,例如:
| col1 | col2 | col3
0 | Text1 | a,b,c | klra-tk³,t54 ?
1 | Text2 | NaN | gimbal3,gimbal4
2 | Text3 | a,k,m | NaN
我想获得一行,其中一行的所有唯一值都在一行中,而NaN则被忽略,例如:
| col1 | col2 | col3
0 | Text1,Text2,Text3 | a,c,m | klra-tk³,t54,gimbal3,gimbal4
我该如何用熊猫呢?
解决方法
对Series.str.split
,DataFrame.stack
使用自定义函数,通过Series.drop_duplicates
删除重复项,通过Series.dropna
删除缺失值,通过,
进行最后加入并转换{{ 1}}通过Series.to_frame
移到一行DataFrame并转置:
Series
或使用列表理解,如:
f = lambda x: ','.join(x.str.split(',',expand=True).stack().drop_duplicates().dropna())
df = df.apply(f).to_frame().T
print (df)
col1 col2 col3
0 Text1,Text2,Text3 a,b,c,k,m klra-tk,t54,gimbal3,gimbal4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。