Python Dataframe 到 Columnar 格式,用于动态访问列

Python Dataframe to Columnar format for accessing the columns dynamically

Dataframe 数据将为:

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,transpose/convert 所有键值如下。

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