亲自尝试一下:
import pandas as pd
s=pd.Series(xrange(5000000))
%timeit s.loc[[0]] # You need pandas 0.15.1 or newer for it to be that slow
1 loops, best of 3: 445 ms per loop
Run Code Online (Sandbox Code Playgroud)
更新:这是大熊猫的合法错误,可能在2014年8月左右的0.15.1中引入.解决方法:在使用旧版本的pandas时等待新版本; 得到一个前沿的开发.来自github的版本; 在您的发布中手动执行单行修改pandas
; 暂时使用.ix
而不是.loc
.
我有480万行的数据帧,以及选择使用的单个行.iloc[[ id ]]
(具有单个元素的列表)需要489毫秒,几乎一半的第二,慢1,800x倍的相同.ix[[ id ]]
,并慢于3,500x倍 .iloc[id]
(使ID作为一个值,而不是一个列表).公平地说,.loc[list]
无论列表的长度如何都需要大约相同的时间,但我不想花费489毫秒,特别是当它.ix
快一千倍时,并产生相同的结果.我的理解.ix
应该是慢一点,不是吗?
我正在使用熊猫0.15.1.关于索引和选择数据的优秀教程表明,它.ix
在某种程度上更为通用,并且可能比.loc
和更慢.iloc
.具体来说,它说
但是,当轴基于整数时,仅支持基于标签的访问而非位置访问.因此,在这种情况下,通常最好是明确的并使用.iloc或.loc.
这是一个带有基准的iPython会话:
print 'The dataframe has …
Run Code Online (Sandbox Code Playgroud) 在python中有一个很好的功能,python -i
.例如,python -i myprogram.py
将运行该程序,然后进入交互模式,就像我已将整个程序粘贴到交互式shell中一样.
node.js中是否有类似的命令?
另一个更新:已解决(请参阅评论和我自己的答案).
更新:这是我想解释的.
>>> pd.Series([7,20,22,22]).std()
7.2284161474004804
>>> np.std([7,20,22,22])
6.2599920127744575
Run Code Online (Sandbox Code Playgroud)
答案:贝塞尔的校正解释了这一点,N-1
而不是N
标准差公式的分母.我希望熊猫使用与numpy相同的约定.
有一个相关的讨论在这里,但他们的建议都不能工作.
我有很多不同餐厅的数据.这是我的数据框(想象不止一个餐厅,但效果只用一个复制):
>>> df
restaurant_id price
id
1 10407 7
3 10407 20
6 10407 22
13 10407 22
Run Code Online (Sandbox Code Playgroud)
问题:r.mi.groupby('restaurant_id')['price'].mean()
每家餐厅的退货价格均值.我想获得标准偏差.但是,r.mi.groupby('restaurant_id')['price'].std()
返回错误的值.
正如您所看到的,为简单起见,我只提取了一个有四个项目的餐厅.我想找到价格的标准差.只想确认一下:
>>> np.mean([7,20,22,22])
17.75
>>> np.std([7,20,22,22])
6.2599920127744575
Run Code Online (Sandbox Code Playgroud)
我们可以得到相同(正确)的值
>>> np.mean(df)
restaurant_id 10407.00
price 17.75
dtype: float64
>>> np.std(df)
restaurant_id 0.000000
price 6.259992
dtype: float64
Run Code Online (Sandbox Code Playgroud)
(当然,无视平均餐厅的身份.)显然,np.std(df)
当我有一家以上的餐厅时,这不是一个解决方案.所以我正在使用groupby
.
>>> df.groupby('restaurant_id').agg('std')
price
restaurant_id
10407 7.228416
Run Code Online (Sandbox Code Playgroud)
什么?!7.228416不是6.259992.
让我们再试一次.
>>> …
Run Code Online (Sandbox Code Playgroud) 我想用django-tables2创建一个表,以便不同的行具有不同的属性.
默认情况下,我得到了
<tr class="odd">
Run Code Online (Sandbox Code Playgroud)
要么
<tr class="even">
Run Code Online (Sandbox Code Playgroud)
如何为某些行指定自己的类?
同样,如果我有一个CheckBoxColumn并且我为此列指定了一些数据,那么它将进入以下值:
<input type="checkbox" name="col" value="123"/>
Run Code Online (Sandbox Code Playgroud)
这非常适合确定选中了哪个复选框.但是,如何在创建表时将一些复选框设置为选中状态?
我的场景:用户从大表中选择一些行.例如,表格有
用户选择aaple 5和黄瓜7.
然后我想显示所有苹果和所有黄瓜,因为用户至少挑选了一个苹果和至少一个黄瓜.这允许用户查看其他相关条目:
但是,我想通过使用css和/或显示选中的复选框来突出显示用户实际选择的条目:
public class Test{
public void newMethod(){
if(true)int i=0;
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了以下错误
Test.java:4: error: '.class' expected
if(true)int i=0;
^
Run Code Online (Sandbox Code Playgroud)
但如果我这样写
public class Test{
public void newMethod(){
if(true){
int i=0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
那就没有错误!
我知道这个问题对社区没有帮助,但我真的很好奇为什么我需要在这个声明中有括号.我已经用java编程了几年,我刚刚遇到这个错误.
顺便说一句,我正在使用JGrasp.
我想允许两个外键字段为空。
但两个字段不能同时为空。
事实上,任何时候都必须准确地设置一个。
我该如何表达这一点呢?
外键引用的两个表不相同。
python ×3
pandas ×2
checkbox ×1
constraints ×1
css ×1
django ×1
foreign-keys ×1
grammar ×1
group-by ×1
java ×1
jgrasp ×1
node.js ×1
numpy ×1
performance ×1
statistics ×1