| 日期 商品代码 价格
2021\9\14 9:21:00 1010 100070
2021\9\14 10:30:00 1010 100120
2021\9\14 12:22:00 1010 100078
2021\9\14 13:10:00 1010 100130
2021\9\14 15:28:00 1010 100210
2021\9\14 16:30:00 1010 100310
2021\9\15 9:41:00 1010 100710
2021\9\15 10:32:00 1010 100725
2021\9\15 12:28:00 1010 100778
2021\9\15 13:07:00 1010 100745
2021\9\15 15:28:00 1010 100719
2021\9\15 9:41:00 1011 100711
2021\9\15 10:32:00 1011 100729
2021\9\15 12:28:00 1011 100788
2021\9\15 13:07:00 1011 100756
2021\9\15 15:28:00 1011 100729
2021\9\16 9:21:00 1010 100745
2021\9\16 10:30:00 1010 100719
2021\9\16 12:22:00 1010 100711
2021\9\16 13:10:00 1010 100729
2021\9\16 15:28:00 1010 100788
2021\9\16 16:30:00 1010 100756
2021\9\16 17:34:00 1010 100725
数据就是这种情况 我想知道如何使用MATLAB把每一天的不同商品的平均价格根据日期和商品代码求出来输出到一个表格中
如果手动处理 我自己的数据量太大根本处理不完想知道怎样用代码得出结果。
你好!
我把你的这个数据保存成为a.csv文件,格式如下
日期 商品代码 价格
2021\9\14 9:21:00 1010 100070
2021\9\14 10:30:00 1010 100120
2021\9\14 12:22:00 1010 100078
2021\9\14 13:10:00 1010 100130
2021\9\14 15:28:00 1010 100210
2021\9\14 16:30:00 1010 100310
2021\9\15 9:41:00 1010 100710
2021\9\15 10:32:00 1010 100725
2021\9\15 12:28:00 1010 100778
2021\9\15 13:07:00 1010 100745
2021\9\15 15:28:00 1010 100719
2021\9\15 9:41:00 1011 100711
2021\9\15 10:32:00 1011 100729
2021\9\15 12:28:00 1011 100788
2021\9\15 13:07:00 1011 100756
2021\9\15 15:28:00 1011 100729
2021\9\16 9:21:00 1010 100745
2021\9\16 10:30:00 1010 100719
2021\9\16 12:22:00 1010 100711
2021\9\16 13:10:00 1010 100729
2021\9\16 15:28:00 1010 100788
2021\9\16 16:30:00 1010 100756
2021\9\16 17:34:00 1010 100725
然后用matlab读入并处理,代码并详细解释如下
clc;clear
T = readtable('a.csv','PreserveVariableNames',0);% 读入csv文件,忽略表头
Date = datetime(T{:,1},'inputformat','yyyy\MM\dd');%转化第一列为日期
% Time = retime(T{:,2});
Tags = T{:,3};%第三列为标签
Price = T{:,4};%第四列为价格
Q = timetable(Date, Tags, Price);% 形成新的时间表格
UniTags = unique(Tags);%将标签形成集合
TotalSummary = timetable();%构建新表
for i = 1:1:numel(UniTags)
q = Q.('Tags')==UniTags(i);
eQ = Q(q,:);
eQ = retime(eQ,'daily','mean');%计算每日均价
TotalSummary = [TotalSummary; eQ];%统计汇总到新表
end
TotalSummary = renamevars(TotalSummary, 'Price','averagePrice');%重新命名价格为均价
writetable(TotalSummary,'newtable.xlsx')%输出到xlsx表格
最后可以得到日均价格表为
TotalSummary =
4×2 timetable
Date Tags averagePrice
__________ ____ ____________
2021-09-14 1010 100153
2021-09-15 1010 100735.4
2021-09-16 1010 100739
2021-09-15 1011 100742.6
可见已经成功求得每一天的不同商品的平均价格根据日期和商品代码