我有一长串按月列出的状态代码,例如:
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']
)
我想最终绘制一些折线图,每个状态代码用一条线表示。我已经发现此表包含正确的信息:
pivot = stats.pivot_table(index=['day', 'status_code'], aggfunc=len)
看起来像:
url
month status_code
2016-01 200 2
400 1
2016-02 200 1
或图片:
所以这是我需要的信息。
但是:
1.) 我已经无法访问该信息。什么是例如获取 2016 年 1 月状态代码为 200 的网址数量的语法?
2.) 我将如何绘制它?我想画多条线,其中 x 轴是月份,y 轴是状态代码计数。
3.) 为什么最右边的列名为“url”?我没有在我的数据透视表中包含该 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()
关于python - Pandas 中的嵌套数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36129683/