Python Pandas: Pivot/Stack 数据列和行
Python Pandas: Pivot/Stack data columns and rows
我已经用 Pandas 将一些数据整理成以下格式:
1Attribute 2Attribute 3Attribute prefix new_c_header
0 LGT-0269 LGT-0275 LGT-0031 A CODE
1 Hydrobromide Doxylamine Acetaminophen A Material
2 15.75 6.25 325 A mg/capsule
3 A Overage per Full Batch (Kg)
4 LGT-0031 LGT-0269 LGT-0726 B CODE
5 Acetaminophen Hydrobromide Phenylephrine B Material
6 325 10 5 B mg/capsule
7 B Overage per Full Batch (Kg)
但我正在尝试使用 Python 和 Pandas 将此格式转换为以下格式:
0 prefix CODE Material mg/capsule Overage per Full Batch (Kg)
1 A LGT-0269 Hydrobromide 15.75
2 A LGT-0275 Doxylamine 6.25
3 A LGT-0031 Acetaminophen 325
4 B LGT-0031 Acetaminophen 325
5 B LGT-0269 Hydrobromide 10
6 B LGT-0726 Phenylephrine 5
我多次尝试堆叠、熔化和转动都无济于事。真正让我绊倒的是将“new_c_header”列转换为新格式的新 headers。
尝试:
x = (
df.set_index(["prefix", "new_c_header"])
.stack()
.unstack(level=1)
.reset_index()
.drop(columns="level_1")
)
x.columns.name = ""
print(x)
打印:
prefix CODE Material Overage per Full Batch (Kg) mg/capsule
0 A LGT-0269 Hydrobromide 15.75
1 A LGT-0275 Doxylamine 6.25
2 A LGT-0031 Acetaminophen 325
3 B LGT-0031 Acetaminophen 325
4 B LGT-0269 Hydrobromide 10
5 B LGT-0726 Phenylephrine 5
我已经用 Pandas 将一些数据整理成以下格式:
1Attribute 2Attribute 3Attribute prefix new_c_header
0 LGT-0269 LGT-0275 LGT-0031 A CODE
1 Hydrobromide Doxylamine Acetaminophen A Material
2 15.75 6.25 325 A mg/capsule
3 A Overage per Full Batch (Kg)
4 LGT-0031 LGT-0269 LGT-0726 B CODE
5 Acetaminophen Hydrobromide Phenylephrine B Material
6 325 10 5 B mg/capsule
7 B Overage per Full Batch (Kg)
但我正在尝试使用 Python 和 Pandas 将此格式转换为以下格式:
0 prefix CODE Material mg/capsule Overage per Full Batch (Kg)
1 A LGT-0269 Hydrobromide 15.75
2 A LGT-0275 Doxylamine 6.25
3 A LGT-0031 Acetaminophen 325
4 B LGT-0031 Acetaminophen 325
5 B LGT-0269 Hydrobromide 10
6 B LGT-0726 Phenylephrine 5
我多次尝试堆叠、熔化和转动都无济于事。真正让我绊倒的是将“new_c_header”列转换为新格式的新 headers。
尝试:
x = (
df.set_index(["prefix", "new_c_header"])
.stack()
.unstack(level=1)
.reset_index()
.drop(columns="level_1")
)
x.columns.name = ""
print(x)
打印:
prefix CODE Material Overage per Full Batch (Kg) mg/capsule
0 A LGT-0269 Hydrobromide 15.75
1 A LGT-0275 Doxylamine 6.25
2 A LGT-0031 Acetaminophen 325
3 B LGT-0031 Acetaminophen 325
4 B LGT-0269 Hydrobromide 10
5 B LGT-0726 Phenylephrine 5