As in this question我已经问过了,我正在尝试这个时间来做同样的计数,但每天都有。所以我想这段时间到做一个星期一的较低值设定的次数,星期二的几次等等,并计算一周中第7天的总计数为天值列表如下:用熊猫每日频率计数
2013.01.01,00:00,1.31802
2013.01.02,00:00,1.32038
2013.01.03,00:00,1.31859
2013.01.04,00:00,1.30508
等
目前我使用的是熊猫这个,那我用来做一个小时数是一段代码:
df = pd.read_csv(myPath, sep=',', header=None, parse_dates=[[0, 1]])
df.columns = ["date","value"]
df.set_index("date", inplace=True)
day_min = df.resample('D', how='min')
df['is_day_min'] = day_min.lookup(df.index.normalize(), len(df) * ['value'])==df.value
df.is_day_min.resample('H', np.sum).fillna(0).astype(int)
df.groupby(df.index.time)["is_day_max"].sum().to_csv("C:\\2013frequency_min.csv")
但是,当涉及到分析日常DATAS如果我改变重采样在day_min(第4行)为“W”,在第6行为“D”,则会出现以下错误:KeyError:Timestamp('2013-01-01 00:00:00',tz = None)
Can有人帮忙吗?我相信这很简单,但熊猫文档不帮助我。 即使任何人有一个不使用熊猫的解决方案显示给我。如果它有效,那就没关系。 感谢
是。有用。但是如果我只需要在1到7的索引上显示计数(代表一周中的某几天(在一周内将所有数据帧的结果分组),那该怎么办? – pietrovismara
@ user3142367也许df.groupby(pd.TimeGrouper('W')).value.apply(lambda x:((x == x.min())。astype(int).groupby(x.index.day) ).sum())。unstack(1) –
你给我的问题留出时间非常好。但是这样你建议它给了我当月的一天的数字。我需要的是“我们有星期一的最低价值的4倍,所以我们加上4星期一(或第1天)”,以此类推星期二,星期三等等。 – pietrovismara