python - 用于动态访问列的 Python 数据框到列格式
问题描述
数据框数据将是:
COL1 | COL2 | COL3 |
---|---|---|
100 | 200 | 300 |
101 | 201 | 301 |
102 | 202 | 302 |
103 | 203 | 303 |
预期输出:格式为 HBase(列方式)
将 COL1 视为 KEY_COLUMN 值
KEY_COLUMN | 钥匙 | 价值 |
---|---|---|
100 | COL2 | 200 |
100 | COL3 | 300 |
101 | COL2 | 201 |
101 | COL3 | 301 |
102 | COL2 | 202 |
102 | COL3 | 302 |
103 | COL2 | 203 |
103 | COL3 | 303 |
我尝试使用 .loc 将所有键转置/转换为值,如下所示。
for idx in df.index:
print (df.loc[idx])
COL1 100
COL2 200
COL3 300
COL1 101
COL2 201
COL3 301
COL1 102
COL2 202
COL3 302
COL1 103
COL2 203
COL3 303
但是我不能将 KEY_COLUMN 作为第 1 列,将 KEY 和 VALUE 作为后续列。任何人都可以请建议。谢谢!
解决方案
尝试pd.melt
:
df = (
df.rename(columns={"COL1": "KEY_COLUMN"})
.melt("KEY_COLUMN", var_name="KEY", value_name="VALUE")
.sort_values(by="KEY_COLUMN")
)
print(df)
印刷:
KEY_COLUMN KEY VALUE
0 100 COL2 200
4 100 COL3 300
1 101 COL2 201
5 101 COL3 301
2 102 COL2 202
6 102 COL3 302
3 103 COL2 203
7 103 COL3 303
推荐阅读
- swift - 使用 Swift Enum 时,Objective-C 方法在 Swift 中不可见
- mysql - 如何检查sql表中列的所有条目是否为空?
- curve-fitting - 用于 msc ADAMS 软件中强加运动的样条拟合
- snowflake-cloud-data-platform - 对不同值求和
- c++ - CMakeLists.txt:251 处的 CMake 错误(消息):无法确定正则表达式后端的源文件
- node.js - Nestjs wss handleConnection(socket) socket.handshake 未定义,无法访问标头进行身份验证
- c# - Microsoft Graph 获取所有用户异常不受支持的查询
- javascript - 我的第一个计算器的问题(JavaScript(没有 html,css)
- amazon-web-services - AWS Lambda destination Lambda not triggering
- c# - 无法覆盖 Equals 时如何比较两个对象?