我正在尝试将以下数据从宽格式转换为长格式
df = pd.DataFrame(
{
"size_Ent": {
pd.Timestamp("2021-01-01 00:00:00"): 600,
pd.Timestamp("2021-01-02 00:00:00"): 930,
},
"size_Baci": {
pd.Timestamp("2021-01-01 00:00:00"): 700,
pd.Timestamp("2021-01-02 00:00:00"): 460,
},
"min_area_Ent": {
pd.Timestamp("2021-01-01 00:00:00"): 1240,
pd.Timestamp("2021-01-02 00:00:00"): 1503,
},
"min_area_Baci": {
pd.Timestamp("2021-01-01 00:00:00"): 1285,
pd.Timestamp("2021-01-02 00:00:00"): 953,
},
}
)
size_Ent size_Baci min_area_Ent min_area_Baci
2021-01-01 600 700 1240 1285
2021-01-02 930 460 1503 953
问题在于列名包含由下划线分隔的两个不同信息:
- 测量的属性/变量(例如大小或最小面积)。我希望这些保留为列名(无重复)。
- 被测量物品的标签(例如,Ent 或 Baci)。我希望这些标签成为一个名为“细菌”的新列的值。
此外,我希望行索引保持为时间戳。
它应该像这样:
bacterium min_area size
2021-01-01 Baci 1285 700
2021-01-01 Ent 1240 600
2021-01-02 Baci 953 460
2021-01-02 Ent 1503 930
我尝试使用 df.T
转置数据框,但这并没有给出我想要的结果。
pandas
、spark
或其他类型的数据框架? - Sarah Messer