这是我的数据框:
data = {
'names': ['Rose',' Rose', 'Tulip', 'Tulip', 'Lily'],
'f': [10, 20, 5,15, 30],
'h': [5, 8, 6, 12, 10],
'date':['2023-01-01', '2023-02-01', '2023-02-01', '2023-03-01', '2023-04-01']
}
我该如何创建这个?
Rose Tulip Lily
f h f h f h
2023-01-01 10 5 0 0 0 0
2023-02-01 20 8 5 6 0 0
2023-03-01 0 0 15 12 0 0
2023-04-01 0 0 0 0 30 10
我认为你想旋转数据:
data = {
"names": ["Rose", "Rose", "Tulip", "Tulip", "Lily"],
"f": [10, 20, 5, 15, 30],
"h": [5, 8, 6, 12, 10],
"date": ["2023-01-01", "2023-02-01", "2023-02-01", "2023-03-01", "2023-04-01"],
}
df = pd.DataFrame(data)
df = (
df.pivot(index="date", columns=["names"], values=["f", "h"])
.swaplevel(axis=1)
.sort_index(axis=1)
.fillna(0)
)
print(df)
打印:
names Lily Rose Tulip
f h f h f h
date
2023-01-01 0.0 0.0 10.0 5.0 0.0 0.0
2023-02-01 0.0 0.0 20.0 8.0 5.0 6.0
2023-03-01 0.0 0.0 0.0 0.0 15.0 12.0
2023-04-01 30.0 10.0 0.0 0.0 0.0 0.0