小编Chu*_*woo的帖子

从数据透视表绘制 Pandas DataFrame

我试图在 Jupyter Notebook 中使用 Pandas 绘制一个线图,比较 1960-1962 年特定州的谋杀率。

关于我现在所处位置以及我如何到达这里的一些背景信息:

我正在使用犯罪 csv 文件,如下所示: 在此输入图像描述

我暂时只对 3 列感兴趣:州、年份和谋杀率。具体来说,我只对 5 个州感兴趣:阿拉斯加州、密歇根州、明尼苏达州、缅因州、威斯康星州。

因此,为了生成所需的表格,我这样做了(仅显示前 5 行条目):

al_mi_mn_me_wi = crimes[(crimes['State'] == 'Alaska') | (crimes['State'] =='Michigan') | (crimes['State'] =='Minnesota') | (crimes['State'] =='Maine') | (crimes['State'] =='Wisconsin')]
control_df = al_mi_mn_me_wi[['State', 'Year', 'Murder Rate']]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

从这里我使用了pivot函数

df = control_1960_to_1962.pivot(index = 'Year', columns = 'State',values= 'Murder Rate' ) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这就是我陷入困境的地方。我在执行时收到 KeyError (KeyError 是 Year):

df.plot(x='Year', y='Murder Rate', kind='line')
Run Code Online (Sandbox Code Playgroud)

当尝试只是

df.plot()
Run Code Online (Sandbox Code Playgroud)

我得到了这张奇怪的图表。

在此输入图像描述

如何获得我想要的图表?

python pivot matplotlib pandas

8
推荐指数
1
解决办法
5万
查看次数

通过分隔符分隔电子邮件字符串

我有一系列电子邮件地址(大约超过50,000),我有兴趣计算特定电子邮件域的频率.例如,如果我有

emails = [
  'Johndoe@gmail.com',
  'Johndoe@yahoo.com', 
  'Johndoe@aol.com',
  'Johndoe@someuni.xyz.com',
  'Janedoe@gmail.com'
]
Run Code Online (Sandbox Code Playgroud)

我对哪个电子邮件域名出现最感兴趣,我想以'gmail'频率返回2.

为了做到这一点,我认为通过数组并丢弃之前发生的一切@并将域保持为一个新数组,然后我可以迭代,这是一个好主意.我该怎么做?

ruby email

2
推荐指数
1
解决办法
89
查看次数

收集数组Ruby中每个元素的0索引

我有一个数组:array = [[53,600],[9,89],[56,9],...[4,67]]我有兴趣创建一个新list的只有我的每个元素的第一个条目array.所以,我想要的输出是list = [53,9,56,....,4].我怎么做?

ruby arrays ruby-on-rails list

1
推荐指数
1
解决办法
47
查看次数

标签 统计

ruby ×2

arrays ×1

email ×1

list ×1

matplotlib ×1

pandas ×1

pivot ×1

python ×1

ruby-on-rails ×1