小编ido*_*oda的帖子

如何找到已安装的pandas版本

我遇到了一些熊猫功能问题.如何查看我的安装版本是什么?

python pandas

220
推荐指数
6
解决办法
23万
查看次数

Spyder不会自动完成局部变量

我在解决自动填充本地变量时遇到问题.这是一个非常基本的功能,我相信它应该支持.当我开始写一个已经声明的变量名,并按TAB(这是默认的快捷方式)时,我什么也得不到.这是一个错误吗?

code-completion spyder

38
推荐指数
1
解决办法
6万
查看次数

在IPython笔记本降价/标题单元格中居文本?

我想自定义我的笔记本,让它更具可读性和时尚感.所以,为此,我想首先集中我的标题.可能吗?

ipython-notebook

33
推荐指数
4
解决办法
4万
查看次数

在IPython笔记本旁边使用IPython控制台

在使用IPython笔记本电脑时,我越来越发现自己希望笔记本电脑附带一个控制台,用于交互式编程.我发现自己添加行来测试代码片段然后删除它们,这是很好的用法.在更糟糕的用法中,我正在改变同一行中的命令,一遍又一遍地评估行,完全改变行的目的,直到我做对了,然后我一直Ctrl-Z回到原始单元格内容.

如果我可以在笔记本底部安装一个交互式翻译,那肯定会提高我的工作效率.我知道笔记本有一个内核,但我无法附加一个新的ipython控制台.所以我的奇迹是:

  1. 是否有更有效的方式使用笔记本电脑?
  2. 假设没有,我如何将ipython控制台附加到笔记本内核?

谢谢!

ipython ipython-notebook

28
推荐指数
2
解决办法
7264
查看次数

将多索引排序为全深度(Pandas)

我有一个数据帧,我从一个csv文件加载,然后通过set_index方法将索引设置为少数列(通常是两个或三个).我们的想法是使用几个组合键访问数据框的各个部分,如下所示:

df.set_index(['fileName','phrase'])
df.ix['somePath','somePhrase']
Run Code Online (Sandbox Code Playgroud)

显然,只有当数据帧的多索引被分类到足够的深度时,才能进行这种具有多个键的选择.在这种情况下,由于im提供两个密钥,只有当数据帧多索引被分类到至少为2的深度时,.ix操作才会失败.

出于某种原因,当我设置如图所示的索引时,对我而言,似乎两个层都已排序,调用 set_index命令返回1,并且在尝试使用两个键访问时出现以下错误:MultiIndex

有帮助吗?

python pandas

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

更改pandas数据帧中的值会起作用

我在更改数据框中的值时遇到问题.我还想咨询一下我需要解决的问题以及使用pandas解决问题的正确方法.我会很感激两者的帮助.我有一个文件,其中包含有关音频文件与扬声器匹配程度的信息.该文件看起来像这样:

wave_path   spk_name    spk_example#    score   mark    comments    isUsed
190  122_65_02.04.51.800.wav     idoD    idoD    88  NaN     NaN     False
191  121_110_20.17.27.400.wav    idoD    idoD    87  NaN     NaN     False
192  121_111_00.34.57.300.wav    idoD    idoD    87  NaN     NaN     False
193  103_31_18.59.12.800.wav     idoD    idoD_0  99  HIT     VP  False
194  131_101_02.08.06.500.wav    idoD    idoD_0  96  HIT     VP  False
Run Code Online (Sandbox Code Playgroud)

我需要做的是某种复杂的计数.我需要通过扬声器对结果进行分组,并为每个扬声器计算一些计算.然后我继续使用为我做出最佳计算的扬声器,但在继续之前,我需要将我用于计算的所有文件标记为正在使用,即更改它们出现的每一行的isUsed值(文件可以出现不止一次)为真.然后我再做一次迭代.计算每个扬声器,标记使用过的文件等,直到不再计算扬声器为止.

我想了很多关于如何使用pandas实现该过程(在常规python中很容易实现,但是需要大量的循环和数据结构,我的猜测会大大减慢这个过程,而且我也在使用它学习熊猫能力的过程更深入)

我出来了以下解决方案.作为准备步骤,我将按扬声器名称分组,并通过set_index方法将文件名设置为索引.然后,我将迭代groupbyObj并应用计算功能,该功能将返回所选扬声器和要标记为已使用的文件.

然后我将遍历文件并将它们标记为已使用(这将是快速而简单的,因为我事先将它们设置为索引),依此类推,直到我完成计算.

首先,我不确定这个解决方案,所以请随时告诉我你的想法.现在,我已经尝试实现这个,并遇到了麻烦:

首先我按文件名索引,这里没问题:

In [53]:

    marked_results['isUsed'] = False
    ind_res = marked_results.set_index('wave_path')
    ind_res.head()

Out[53]:
    spk_name    spk_example#    score   mark    comments    isUsed
    wave_path                       
    103_31_18.59.12.800.wav      idoD    idoD    99  HIT     VP  False
    131_101_02.08.06.500.wav     idoD …
Run Code Online (Sandbox Code Playgroud)

dataframe pandas

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

从pandas dataFrame中删除NaN

我不明白NaN是如何在熊猫中对待的,会很乐意得到一些解释,因为逻辑似乎对我"破碎".

我有一个csv文件,我使用read csv加载.我在该文件中有一个"注释"列,大多数时候都是空的.

我已经隔离了该列,并尝试了不同的方法来删除空值.首先,当我写作:

0       VP
1       VP
2       VP
3     TEST
4      NaN
5      NaN
....
Run Code Online (Sandbox Code Playgroud)

我明白了:

comments_values = marked_results.comments.unique()

array(['VP', 'TEST', nan], dtype=object)

# Ah, gotya! so now ive tried:
marked_results.comments == comments_values[2]
# but still all the results are Falses!!!
Run Code Online (Sandbox Code Playgroud)

该列的其余部分是NaN.所以pandas将空条目加载为NaN.到目前为止很棒.现在我试图删除这些条目.我尝试过:

0       VP
1       VP
2       VP
3     TEST
4      NaN
5      NaN
....
Run Code Online (Sandbox Code Playgroud)

并收到同一列.没有什么被丢弃.困惑,我试图理解为什么没有丢弃,所以我尝试:

comments_values = marked_results.comments.unique()

array(['VP', 'TEST', nan], dtype=object)

# Ah, gotya! so now ive tried:
marked_results.comments == comments_values[2]
# but still all the …
Run Code Online (Sandbox Code Playgroud)

python nan dataframe pandas

7
推荐指数
2
解决办法
2万
查看次数

使用目录将IPython笔记本编写为HTML或PDF

我正在尝试从我的IPython笔记本创建报告。我使用toc扩展名为我的nb创建一个toc。我已经将笔记本转换为html,但是toc未显示,并且未链接到文档的其余部分。有什么方法可以转换为指定的fromat之一,并仍然保持可链接(甚至不可链接)的TOC?

ipython ipython-notebook

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

将数据框保存和加载到csv会导致未命名的列

标题中的概率.的exaple:

x=[('a','a','c') for i in range(5)]
df = DataFrame(x,columns=['col1','col2','col3'])
df.to_csv('test.csv')
df1 = read_csv('test.csv')

   Unnamed: 0 col1 col2 col3
0           0    a    a    c
1           1    a    a    c
2           2    a    a    c
3           3    a    a    c
4           4    a    a    c
Run Code Online (Sandbox Code Playgroud)

原因似乎是在保存数据帧时,也会写入索引列,标题中没有名称.然后当您再次加载csv时,它将索引列作为未命名列加载.这是一个错误吗?如何避免使用索引编写csv,或者在读取时删除未命名的列?

python pandas

7
推荐指数
2
解决办法
9159
查看次数

按列分组然后按pandas中的索引执行boxplot

我有一个大型数据框,我想按一些列进行分组,并使用boxplot以图形方式检查每组的分布情况.我发现它df.boxplot()会为数据帧的每一列做到这一点并将其放在一个图中,就像我需要的那样.

问题是在groupby操作之后,我的数据全部在索引中的组标签的一列中,所以我不能在结果上调用boxplot.

这是一个例子:

df = DataFrame({'a':rand(10),'b':[x%2 for x in range(10)]})
df

         a   b
0    0.273548    0
1    0.378765    1
2    0.190848    0
3    0.646606    1
4    0.562591    0
5    0.409250    1
6    0.637074    0
7    0.946864    1
8    0.203656    0
9    0.276929    1
Run Code Online (Sandbox Code Playgroud)

现在我想按列b和boxplot分组两个组在一个boxplot中的分布.我怎样才能做到这一点?

boxplot pandas

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