这是我的数据框
import pandas as pd
# create sample data
data = {'store name': ['Store A', 'Store A', 'Store B', 'Store B', 'Store C', 'Store C'],
'time': ['2023-04-25 00:00:00', '2023-04-25 01:00:00', '2023-04-25 00:00:00', '2023-04-25 01:00:00', '2023-04-25 00:00:00', '2023-04-25 01:00:00'],
'sales': [100, 200, 150, 250, 300, 350]}
# create pandas dataframe
df = pd.DataFrame(data)
我想填写04-25所有商店的缺失时间
import datetime
start = datetime.datetime(2023, 4, 25)
end = datetime.datetime(2023, 4, 26)
full_range = pd.date_range(start, end, freq = 'H')
time = pd.DataFrame(full_range, columns = ['time'])
df = df.groupby('store name').apply(lambda x : pd.merge(x, time, on = 'time', how = 'outer')).reset_index()
但是这将返回'store name'已经作为列存在。如果我执行reset_index(drop = True),那么它将删除所有添加的缺失时间。我应该怎么做?
1条答案
按热度按时间5t7ly7z51#
IIUC,你可以使用
pivot
或pivot_table
来重塑你的 Dataframe ,然后重新索引time
:输出:
更新
如果我的值包含多个列,比如['sales','traffic'],该怎么办
对于多个值列,可以用途: