我正在阅读一个包含多个数字和分类数据的excel文件.name_string列包含外语字符.当我尝试查看name_string列的内容时,我得到了我想要的结果,但外部字符(在Excel电子表格中正确显示)显示的编码错误.这是我有的:
import pandas as pd
df = pd.read_excel('MC_simulation.xlsx', 'DataSet', encoding='utf-8')
name_string = df.name_string.unique()
name_string.sort()
name_string
Run Code Online (Sandbox Code Playgroud)
产生以下内容:
array([u'4th of July', u'911', u'Abab', u'Abass', u'Abcar', u'Abced',
u'Ceded', u'Cedes', u'Cedfus', u'Ceding', u'Cedtim', u'Cedtol',
u'Cedxer', u'Chevrolet Corvette', u'Chuck Norris',
u'Cristina Fern\xe1ndez de Kirchner'], dtype=object)
Run Code Online (Sandbox Code Playgroud)
在最后一行,正确编码的名称应该是CristinaFernándezdeKirchner.有人可以帮我解决这个问题吗?
我正在阅读Drew Conway和John White的" 黑客机器学习 "一书中的教程,我遇到了绘制直方图的问题.示例代码在此处运行绘图部分:
> quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) +
+ geom_histogram() +
+ scale_x_date(major = "50 years")
Run Code Online (Sandbox Code Playgroud)
产生
Error in continuous_scale(aesthetics, "date", identity, breaks = breaks, : unused argument(s) (major = "50 years")
Run Code Online (Sandbox Code Playgroud)
和
> ggsave(plot = quick.hist,
+ filename = "C:\test.png",
+ height = 6,
+ width = 8)
Run Code Online (Sandbox Code Playgroud)
产生
Error in inherits(plot, "ggplot") : object 'quick.hist' not found
Run Code Online (Sandbox Code Playgroud)
我使用的是R版本2.14.2.和ggplot2库.在此先感谢您的帮助.
解决了
对我有用的快速解决方案是消除引用标签的每一行的'+ scale_x_date(major ="50 years")'部分.产生直方图的最终代码如下:
> quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) +
+ geom_histogram() …
Run Code Online (Sandbox Code Playgroud) 我在Canopy中使用matplotlib库,具体功能是xkcd().此功能使用特定字体绘制图表.字体是Comic Sans MS,如果不存在,应该下载.
/home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['Humor Sans', 'Comic Sans MS'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))
Run Code Online (Sandbox Code Playgroud)
我使用下面的小脚本,它检查字体的存在/不存在.如果不存在,则下载它.
import os
import urllib2
if not os.path.exists('Humor-Sans.ttf'):
fhandle = urllib2.urlopen('http://antiyawn.com/uploads/Humor-Sans-1.0.ttf')
open('Humor-Sans.ttf', 'wb').write(fhandle.read())
Run Code Online (Sandbox Code Playgroud)
问题是我仍然没有得到正确的字体来显示.如果字体缓存出现问题,我会执行以下操作:
luis@luis-VirtualBox:~$ rm /home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/fontList.cache
Run Code Online (Sandbox Code Playgroud)
获得以下内容:
rm: cannot remove ‘/home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/fontList.cache’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我注意到Stack Overflow的用户数量及其声誉遵循有趣的分布.我创建了一个pandas DF,看看我是否可以创建一个参数拟合:
import pandas as pd
import numpy as np
soDF = pd.read_excel('scores.xls')
print soDF
Run Code Online (Sandbox Code Playgroud)
哪个返回:
total_rep users
0 1 4364226
1 200 269110
2 500 158824
3 1000 90368
4 2000 48609
5 3000 32604
6 5000 18921
7 10000 8618
8 25000 2802
9 50000 1000
10 100000 334
Run Code Online (Sandbox Code Playgroud)
如果我绘制图表,我会得到以下图表:
该分布似乎遵循幂律.因此,为了更好地可视化,我添加了以下内容:
soDF['log_total_rep'] = soDF['total_rep'].apply(np.log10)
soDF['log_users'] = soDF['users'].apply(np.log10)
soDF.plot(x='log_total_rep', y='log_users')
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以使用pandas来找到最适合这些数据的方法?虽然拟合看起来是线性的,但也许多项式拟合更好,因为现在我处理的是对数尺度.
我是matplotlib的新手,我试图在熊猫中使用它来绘制一些简单的图表.我有一个DataFrame包含两个标签"score"和"person",派生自另一个DF.
df1 = DataFrame(df, columns=['score','person'])
Run Code Online (Sandbox Code Playgroud)
生成此输出:
我正在尝试创建一个简单的条形图,以不同颜色显示每个人,这就是我到目前为止:
df1.plot(kind='bar', title='Ranking')
Run Code Online (Sandbox Code Playgroud)
如何自定义它以使图表在x轴上显示具有独特颜色的人名并删除图周围的"框架"?如何将其设为水平条形图?
在此先感谢您的帮助.
在尝试在Anaconda和Enthought for Mac中运行stanford.edu/~mwaskom/software/seaborn/的多个问题之后(很多依赖项和版本的问题),我能够从Ubuntu中的Enthought虚拟环境运行它(在VirtualBox上运行) .
在他们的一些教程之后,我重新创建了以下内容:
但令我困扰的是,使用的字体不是为Seaborn设计的字体,而是最接近的字体.
有人有调整matplotlib中字体选择的经验吗?关于如何使用matplotlib的字体管理器的任何好教程?
我在iPython笔记本中有一段代码,它以编程方式生成一个名为'sound'的文件夹,其中包含以下文件:index.html,canvas.js,graph.js和style.css.
如果我在浏览器中打开index.html,我可以看到我想要的输出:一个带有漂亮的JS动画的图形,表示我正在建模的过程进出的向量.
但是,我想从iPython笔记本本身内部显示HTML文件.
为此,我输入以下代码:
from IPython.display import IFrame
IFrame('/Users/useird/Desktop/sound/index.html', width=700, height=350)
Run Code Online (Sandbox Code Playgroud)
返回以下内容:
我不是css或js的专家,但我认为iPython可以在iframe中显示js,所以这里有什么问题?
谢谢
有没有办法并排绘制两个KDE联合图?我已经能够显示几乎所有类型的图形,seaborn可以使用这样的东西产生:
power_t_series = sDF.pitch
velocity_t_series = sDF.velocity
duration_t_series = sDF.duration
figure, axes = plt.subplots(nrows=1, ncols=2)
figure.set_size_inches(20,10)
b, g = sns.color_palette("muted", 2)
sns.tsplot(power_t_series, color = b, ax=axes[0])
sns.distplot(power_t_series, color = r, ax=axes[1])
Run Code Online (Sandbox Code Playgroud)
但是在指定jointplot时,自上而下是显示这种性质的多个图表的唯一方法吗?这是代码和错误:
figure, axes = plt.subplots(nrows=1, ncols=2)
figure.set_size_inches(20,10)
b, g = sns.color_palette("muted", 2)
sns.jointplot(power_t_series, velocity_t_series, kind='kde', ax=axes[0])
sns.jointplot(power_t_series, duration_t_series, kind='kde', ax=axes[1])
Run Code Online (Sandbox Code Playgroud)
我明白了:
3 b, g = sns.color_palette("muted", 2)
4
----> 5 sns.jointplot(power_t_series, velocity_t_series, kind='kde', ax=axes[0])
6 sns.jointplot(power_t_series, duration_t_series, kind='kde', ax=axes[1])
TypeError: jointplot() got an unexpected keyword argument 'ax'
Run Code Online (Sandbox Code Playgroud)
有没有办法并排绘制这种类型的图表,因为ax不是jointplot()接受的参数?
首先,我是python/nltk的新手,所以如果问题太基础,我很抱歉.我有一个大文件,我试图标记; 我得到了内存错误.
我读过的一个解决方案是一次读取一行文件,这是有道理的,然而,当这样做时,我得到了错误cannot concatenate 'str' and 'list' objects
.我不确定为什么会显示错误,因为(在读取文件后,我检查它的类型,它实际上是一个字符串.
我试图将7MB文件分成4个较小的文件,当运行时,我得到:
error: failed to write data to stream
.
最后,当尝试一个非常小的文件样本(100KB或更少),并运行修改后的代码时,我能够对文件进行标记.
对正在发生的事情的任何见解?谢谢.
# tokenizing large file one line at a time
import nltk
filename=open("X:\MyFile.txt","r").read()
type(raw) #str
tokens = ''
for line in filename
tokens+=nltk.word_tokenize(filename)
#cannot concatenate 'str' and 'list' objects
Run Code Online (Sandbox Code Playgroud)
以下适用于小文件:
import nltk
filename=open("X:\MyFile.txt","r").read()
type(raw)
tokens = nltk.word.tokenize(filename)
Run Code Online (Sandbox Code Playgroud) 我正在尝试music21库,以准备一个涉及类型分类和分类的机器学习项目。我和以下可用一些教程在这里。我将MuseScore用作我的MusicXML程序,并且试图从iPython运行整个程序。
尽管我可以从终端运行一些教程,但是某些元素在iPython内部似乎运行不佳。例如:
In [3]: sBach.show()
Out[3]: <music21.ipython21.objects.IPythonPNGObject at 0x10da0aa10>
Run Code Online (Sandbox Code Playgroud)
上面的行显示已创建PNG对象,但未显示。上面3的预期输出如下:
通过尝试以下iPython命令,我获得了图像的占位符,但没有图像。
In [6]: %load_ext music21.ipython21.ipExtension
In [7]: sBach.show()
Run Code Online (Sandbox Code Playgroud)
我的MusicXMLPath找不到任何问题。本教程涉及在Anaconda中使用musc21,但是我的所有开发工作都是通过Enthought完成的,因此,我不希望运行其他虚拟环境来在iPython中使用music21。
有什么方法可以在Enthought / iPython笔记本中运行music21吗?