gpt4 book ai didi

python - 将每小时温度表转换为 pandas 中的单个时间序列?

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:52 24 4
gpt4 key购买 nike

我有一个 pandas 数据框,其中包含来自 24 小时购物地点的以下客户数据:

Date      #Cust at 00:00 Items/Cust at 00:00  Ttl Items at 00:00 #Cust at 01:00 Items/Cust at 01:00  Ttl Items at 01:00 ....#Cust at 23:00 Items/Cust at 23:00  Ttl Items at 23:00
1/1/2018 2 4 8 1 5 5 3 3 9
1/2/2018 2 5 10 1 5 5 3 4 12
....

我想把它变成一个简单的时间序列数据框:

Time Stamp         #Cust  Items/Cust Ttl Cust
00:00 1/1/2018 2 4 8
01:00 1/1/2018 1 5 5
.....
23:00 1/1/2018 3 3 9
00:00 1/1/2018 2 5 10
01:00 1/1/2018 1 5 5
.....
23:00 1/1/2018 3 4 12

等....

我知道它应该涉及 pd.melt,但考虑到我有多个值列,我无法弄清楚语法。

最佳答案

您可以先通过DataFrame.set_index 不使用at 按列创建索引, 然后使用 str.splitMultiIndex 的列,因此可能使用 DataFrame.stack .上次数据清理 - DataFrame.swaplevel , DataFrame.rename_axisDataFrame.reset_index :

df = df.set_index('Date')
df.columns = df.columns.str.split(' at ', expand=True)
df1 = df.stack().swaplevel(1,0).rename_axis(('Time','Stamp')).reset_index()
print (df1)
Time Stamp #Cust Items/Cust Ttl Items
0 00:00 1/1/2018 2 4 8
1 01:00 1/1/2018 1 5 5
2 23:00 1/1/2018 3 3 9
3 00:00 1/2/2018 2 5 10
4 01:00 1/2/2018 1 5 5
5 23:00 1/2/2018 3 4 12

如果需要日期时间:

df = df.set_index('Date')
df.columns = df.columns.str.split(' at ',expand=True)
df1 = df.stack().swaplevel(1,0).rename_axis(('TimeStamp','Date')).reset_index()
df1['TimeStamp'] = pd.to_datetime(df1.pop('Date') + ' ' + df1['TimeStamp'])
print (df1)
TimeStamp #Cust Items/Cust Ttl Items
0 2018-01-01 00:00:00 2 4 8
1 2018-01-01 01:00:00 1 5 5
2 2018-01-01 23:00:00 3 3 9
3 2018-01-02 00:00:00 2 5 10
4 2018-01-02 01:00:00 1 5 5
5 2018-01-02 23:00:00 3 4 12

还有 DatetimeIndex:

df = df.set_index('Date')
df.columns = df.columns.str.split(' at ',expand=True)
df1 = df.stack()
idx = pd.to_datetime(df1.index.get_level_values(0) + ' ' + df1.index.get_level_values(1))
df1 = df1.set_index(idx).rename_axis('Timestamp')
print (df1)
#Cust Items/Cust Ttl Items
Timestamp
2018-01-01 00:00:00 2 4 8
2018-01-01 01:00:00 1 5 5
2018-01-01 23:00:00 3 3 9
2018-01-02 00:00:00 2 5 10
2018-01-02 01:00:00 1 5 5
2018-01-02 23:00:00 3 4 12

关于python - 将每小时温度表转换为 pandas 中的单个时间序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57157616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com