我有这个数据框:
自由度
Node Interface Speed Band_In carrier Date
Server1 wan1 100 80 ATT 2024-06-01
Server1 wan2 100 60 Sprint 2024-06-01
Server1 wan3 100 96 Verizon 2024-06-01
Server2 wan1 100 80 ATT 2024-06-01
Server2 wan2 100 60 ATT 2024-06-01
Server2 wan3 100 96 ATT 2024-06-01
Server3 wan1 100 80 ATT 2024-06-01
Server3 wan2 100 60 ATT 2024-06-01
Server3 wan3 100 96 ATT 2024-06-01
Server4 wan1 100 80 ATT 2024-06-01
Server4 wan2 100 60 ATT 2024-06-01
Server5 Int3 100 96 Verizon 2024-06-01
Server1 wan1 100 30 ATT 2024-06-10
Server1 wan2 100 30 Sprint 2024-06-10
Server1 wan3 100 15 Verizon 2024-06-10
Server2 wan1 100 80 ATT 2024-06-10
Server2 wan2 100 60 ATT 2024-06-10
Server2 wan3 100 96 ATT 2024-06-10
Server3 wan1 100 80 ATT 2024-06-10
Server3 wan2 100 60 ATT 2024-06-10
Server3 wan3 100 96 ATT 2024-06-10
Server4 wan1 100 80 ATT 2024-06-10
Server4 wan2 100 60 ATT 2024-06-10
Server5 Int3 100 96 Verizon 2024-06-10
我需要重新组织这个数据框,其中每个唯一日期都需要在其自己的列上,并使用由每个节点、接口、载体和日期计算的接口速度 (Band_In/Speed)*100(日期需要为月份名称-日期:例如 6 月 1 日、6 月 10 日)
需要像这样:
df1:
Node Interface Speed Band_In carrier 1-Jun 10-Jun
Server1 wan1 100 80 ATT 80 30
Server1 wan2 100 60 Sprint 60 30
Server1 wan3 100 96 Verizon 96 15
我尝试过这个:
df1=df.pivot(index=['Node', 'Interface', 'Speed', 'Band_In', 'carrier'], columns='Date', values='Speed'/'Interface'*100).fillna('').reset_index()
我得到传递值的长度为 11,456,索引意味着 5。
知道我在这里做错了什么吗?
您可以在旋转表之前计算使用的接口速度,然后使用
pivot_table
: