pie*_*ara 2 python count pandas
就像我已经问过的这个问题一样,我正在尝试这个时间来计算相同的数量,但每天都是如此.因此,我希望这次能够计算星期一设置较低值一周的次数,星期二设置的次数等,以及计算一周中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
等等
我目前正在使用Pandas,而我以前每小时计算的代码是:
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")
Run Code Online (Sandbox Code Playgroud)
但是,如果我在day_min(第4行)中将resample更改为"W",并在第6行中将"D"更改为"D",那么在分析每日数据时会出现此错误:KeyError:Timestamp('2013-01-01 00:00: 00',tz =无)
有人可以帮忙吗?我确信这很简单,但是熊猫文档并没有帮助我.即使有人有一个不使用熊猫的解决方案给我看.如果它工作,那没关系.谢谢
您可以按周使用TimeGrouper(并查看该值是否等于周的最小值),然后按天重新采样:
In [11]: week = df.groupby(pd.TimeGrouper('W'))
In [12]: is_week_min = week['value'].apply(lambda x: x == x.min()).astype(int) # possibly the astype is not needed in 0.13
In [13]: is_week_min.resample('D', how='sum') # count occurences in the day which are week min
Out[13]:
2013-01-01 0
2013-01-02 0
2013-01-03 0
2013-01-04 1
Freq: D, dtype: int64
Run Code Online (Sandbox Code Playgroud)
如果您希望将此列作为每周日期的列,则可以在apply中执行groupby:
In [14]: week['value'].apply(lambda x: ((x == x.min()).astype(int).groupby(x.index.dayofweek)).sum()).unstack(1)
Out[14]:
1 2 3 4
2013-01-06 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
注意:索引是WeekEnd.
并使用您提供的pastebin链接:
In [21]: df = pd.read_csv('http://pastebin.com/raw.php?i=SuyWZLj5', header=None, parse_dates=[[0, 1]])
df.columns = ['date', 'value']
df.set_index('date', inplace=True)
In [22]: df.groupby(pd.TimeGrouper('W')).value.apply(lambda x: ((x == x.min()).astype(int).groupby(x.index.dayofweek)).sum()).unstack(1)
Out[22]:
0 1 2 3 4
2013-01-06 NaN 0 0 0 1
2013-01-13 0 0 0 1 0
2013-01-20 0 0 0 1 0
2013-01-27 1 0 0 0 0
2013-02-03 0 1 0 0 0
2013-02-10 0 0 0 0 1
2013-02-17 0 0 0 0 1
2013-02-24 0 0 0 0 1
2013-03-03 0 0 1 0 NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |