shr*_*ing 5 python numpy matplotlib pandas
我有一长串按月列出的状态代码,例如:
stats = pd.DataFrame(
[
['2016-01', 200, 'xxx.com'],
['2016-01', 400, 'xxx.com'],
['2016-01', 200, 'xxx.com'],
['2016-02', 200, 'xxx.com']
],
columns=['day', 'status_code', 'url']
)
Run Code Online (Sandbox Code Playgroud)
我想最终绘制一些折线图,每个状态代码用一行表示。我已经发现该表包含正确的信息:
pivot = stats.pivot_table(index=['day', 'status_code'], aggfunc=len)
Run Code Online (Sandbox Code Playgroud)
好像:
url
month status_code
2016-01 200 2
400 1
2016-02 200 1
Run Code Online (Sandbox Code Playgroud)
或如图所示:
所以这就是我需要的信息。
然而:
1.) 我已经无法访问该信息。例如,获取 2016-01 状态代码为 200 的 url 数量的语法是什么?
2.)我将如何绘制它?我想绘制多条线,其中 x 轴是月份,y 轴是状态代码计数。
3.) 为什么右外栏名为“url”?我没有在数据透视表中包含该网址。
您可以使用crosstab():
stats = pd.DataFrame(
[
['2016-01', 200, 'xxx.com'],
['2016-01', 400, 'xxx.com'],
['2016-01', 200, 'xxx.com'],
['2016-02', 200, 'xxx.com']
],
columns=['day', 'status_code', 'url']
)
df = pd.crosstab(stats.day, stats.status_code)
df.plot()
Run Code Online (Sandbox Code Playgroud)