[英]Pandas Multiindex Pivot Table Date Format Change with Sorting and Loss of Precision
我有一個看起來像這樣的數據框
data
time market
2020-03-02 00:00:00 Commercial 78.0
Residential 79.0
2020-03-02 04:45:15 Commerical 73.0
Residential 79.0
2020-03-02 06:45:29 Commerical 79.0
Residential 71.0
我想要做的是,如果用戶選擇不同的時間格式,例如 %Y-%m-%d,將其應用於第一列。 但是,如果發生這種情況,該列中有重復項(例如,將有 3 個 2020-03-02 值),Multiindex.set_levels 不接受。 所以我需要以某種方式將它們組合在一起並對值求和,同時保持按時間順序排序。
理想輸出
data
time market
2020-03-02 Commercial 230.0
Residential 229.0
我的代碼
elem = df.index.get_level_values(0).sort_values().strftime("%Y-%m-%d")
df.index.set_levels(elem, level=0, inplace=True, verify_integrity=False)
df.groupby(['time', 'market']).sum()
此代碼導致時間列和市場列中出現重復,這很奇怪。 似乎它幾乎連接了市場列中的值
此外,我真的不想通過展平它或類似的東西來改變結構以不限制用戶。
IIUC,您可以按天和market
按time
分組。 此外,您需要確保time
是datetime
time
類型:
(df.groupby([df.index.get_level_values('time')
.normalize(), 'market'])
.sum()
)
輸出:
data
time market
2020-03-02 Commercial 230.0
Residential 229.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.