我有一个数据框,看起来有点像这样
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_Level不接受这些重复项。所以我需要以某种方式将它们组合在一起,求和值,同时保持时间顺序
理想输出
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,您可以按天分组
time
和market
。另外,您需要确保time
是datetime
类型:输出:
相关问题 更多 >
编程相关推荐