python - 更改数据框中列的元素并合并列
问题描述
我有一个数据框 df 创建为,
df = pd.DataFrame([
[0, 1, 0],
[1, 0, 0],
[0, 1, 0]],
columns=['Mon','Tue','Wed'])
df:
Mon Tue Wed
0 0 1 0
1 1 0 0
2 0 1 0
对于这个数据框,我想将元素“1”替换为相应的列名,将“0”替换为“”,最后将它们全部组合起来。
1 和 0 也可以是字符 - 'X' 和 '-'。
Desired Output:
Day
0 Tue
1 Mon
2 Tue
解决方案
如果可能每行重复,请使用DataFrame.dot
以逗号分隔的列名称:1
df1 = df.dot(df.columns + ',').str[:-1].to_frame('Day')
print (df1)
Day
0 Tue
1 Mon
2 Tue
如果有多个值:
df = pd.DataFrame([
[0, 1, 1],
[1, 0, 0],
[0, 1, 0]],
columns=['Mon','Tue','Wed'])
print (df)
Mon Tue Wed
0 0 1 1
1 1 0 0
2 0 1 0
df1 = df.dot(df.columns + ',').str[:-1].to_frame('Day')
print (df1)
Day
0 Tue,Wed
1 Mon
2 Tue
推荐阅读
- swift - 在开发过程中触发 iOS 13 对话框:“继续始终允许后台位置使用”
- java - 无法应用插件:发现 java 版本 11 最低要求是 1.8。尚不支持 11.0.0 及更高版本
- android - Firebass App Disitrbution 使用 gradle 上传 apk
- mod-pagespeed - mod_pagespeed 控制台中出现许多“无法识别的脚本”消息
- javascript - VueJS | 如何在 v-for 列表中有不同的选择值
- reactjs - ReactJS 在制作后使文件变大。这是为什么?
- python - Python:根据给定参考测量图像中的颗粒大小?
- excel - 运行时错误 13. 用户窗体不接受空值
- html - Bootstrap 主题禁用菜单项
- angular - 创建具有多个组件的 Angular 库的正确方法是什么?