我在Pandas中使用布尔索引.问题是为什么声明:
a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]
Run Code Online (Sandbox Code Playgroud)
工作正常,而
a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]
Run Code Online (Sandbox Code Playgroud)
存在错误?
例:
a=pd.DataFrame({'x':[1,1],'y':[10,20]})
In: a[(a['x']==1)&(a['y']==10)]
Out: x y
0 1 10
In: a[(a['x']==1) and (a['y']==10)]
Out: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Run Code Online (Sandbox Code Playgroud) 我试图理解如何操纵层次结构集群,但文档太......技术性?......我无法理解它是如何工作的.
是否有任何教程可以帮助我开始,逐步解释一些简单的任务?
假设我有以下数据集:
a = np.array([[0, 0 ],
[1, 0 ],
[0, 1 ],
[1, 1 ],
[0.5, 0 ],
[0, 0.5],
[0.5, 0.5],
[2, 2 ],
[2, 3 ],
[3, 2 ],
[3, 3 ]])
Run Code Online (Sandbox Code Playgroud)
我可以轻松地完成层次结构聚类并绘制树形图:
z = linkage(a)
d = dendrogram(z)
Run Code Online (Sandbox Code Playgroud)
[0,1,2,4,5,6]
树状图中有元素的那个?我正在尝试安装rpy2,我正面临一个共同的问题.不幸的是,我找到的所有解决方案都是针对win7的
我安装了Python 2.7和R 2.15.然后我在终端上写字
easy_install rpy2
Run Code Online (Sandbox Code Playgroud)
或者,或者
pip install rpy2
Run Code Online (Sandbox Code Playgroud)
相同的结果:
Tried to guess R's HOME but no R command in the PATH
Run Code Online (Sandbox Code Playgroud)
我该做什么?
我面临一个小问题,以某种方式组合数组.让我们说我们有
a=array([[1,1,1],[2,2,2],[3,3,3]])
b=array([[10,10,10],[20,20,20],[30,30,30]])
Run Code Online (Sandbox Code Playgroud)
我希望得到
c=array([[[1,1,1],[10,10,10]],[[2,2,2],[20,20,20]],[[3,3,3],[30,30,30]]])
Run Code Online (Sandbox Code Playgroud)
真正的问题是我的阵列a和b比3个坐标长得多!
我使用concatenate实现的最好的是:
concatenate((a,b),axis=2)
结果
array([[ 1, 1, 1, 10, 10, 10],
[ 2, 2, 2, 20, 20, 20],
[ 3, 3, 3, 30, 30, 30]])
这是相当不错但没有足够的深度.
此外,我尝试了另一个问题来获得所需的深度:
d=concatenate((a[...,None],b[...,None]),axis=2)
但结果是:
array([[[ 1, 10],
[ 1, 10],
[ 1, 10]],
[[ 2, 20],
[ 2, 20],
[ 2, 20]],
[[ 3, 30],
[ 3, 30],
[ 3, 30]]])
Run Code Online (Sandbox Code Playgroud)
哪个仍然不起作用......
我正在尝试了解一些有关 pexpect 的知识:特别是我正在尝试将文件从我的笔记本电脑复制到远程服务器。我遇到了一种奇怪的行为:如果我逐行编写,或多或少相同的代码可以工作,但如果我将其作为脚本运行,则不会。这是我逐行写的:
child = pexpect.spawn('scp pathdir/file.ext username@hostname:pathdir')
r=child.expect ('assword:')
r
Run Code Online (Sandbox Code Playgroud)
它返回 0,我用密码完成工作
child.sendline ('password')
Run Code Online (Sandbox Code Playgroud)
当我通过 ssh 连接到服务器时,我在那里找到了我的文件。所以我将所有步骤收集在一个脚本中;它退出时没有错误,但文件没有被复制......为什么?但更重要的是,我该如何解决这个问题?
这是脚本:
child = pexpect.spawn('scp pathdir/file.ext username@hostname:pathdir')
r=child.expect ('assword:')
print r
if r==0:
child.sendline ('password')
child.close()
Run Code Online (Sandbox Code Playgroud)
我不确定 pexpect 是如何工作的,所以我打印 r 以确保它是 0。确实如此。
我正在使用一本大字典,出于某种原因,我还需要处理该字典中的小随机样本。我怎样才能得到这个小样本(例如长度为 2)?
这是一个玩具模型:
dy={'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
Run Code Online (Sandbox Code Playgroud)
我需要在 dy 上执行一些涉及所有条目的任务。让我们说,为了简化,我需要将所有值相加:
s=0
for key in dy.key:
s=s+dy[key]
Run Code Online (Sandbox Code Playgroud)
现在,我还需要对 dy 的随机样本执行相同的任务;为此,我需要一个 dy 密钥的随机样本。我能想象的简单解决方案是
sam=list(dy.keys())[:1]
Run Code Online (Sandbox Code Playgroud)
这样我就有了一个字典的两个键的列表,它们在某种程度上是随机的。因此,回到可能的任务,我需要在代码中进行的唯一更改是:
s=0
for key in sam:
s=s+dy[key]
Run Code Online (Sandbox Code Playgroud)
关键是我不完全理解 dy.keys 是如何构建的,然后我无法预见任何未来的问题
我想将一个带有参数的函数应用于pandas系列:我找到了两种不同的SO解决方案:
python pandas:将一个带参数的函数应用于一个系列
和
他们都依赖于使用,functool.partial
他们的工作绝对正常.顺便说一句,新版本的Pandas支持多个论点:无论如何我不明白它是如何工作的.例:
a=pd.DataFrame({'x':[1,2],'y':[10,20]})
a['x'].apply(lambda x,y: x+y, args=(100))
Run Code Online (Sandbox Code Playgroud)
它退出时带有:
TypeError: <lambda>() argument after * must be a sequence, not int
Run Code Online (Sandbox Code Playgroud)