Python 可调用项选择
编辑:原来我最初的问题只是一个版本问题。然而,在回答我最初的问题的过程中,还提出了一些其他问题,因此我重新编写了这些问题,并将它们列在下面:Python 可调用项选择,python,python-3.x,pandas,Python,Python 3.x,Pandas,编辑:原来我最初的问题只是一个版本问题。然而,在回答我最初的问题的过程中,还提出了一些其他问题,因此我重新编写了这些问题,并将它们列在下面: 我正在熟悉熊猫的一些能力,即。文件建议使用lambda函数,例如,提取特征“A”值大于0的数据帧df1中的所有样本: df1.loc[lambda df: df.A > 0, :] 有没有一种更紧凑、更像蟒蛇的方法 假设df1现在是一个具有特性a的数据帧,但是值是混合的双元组和三元组(2元组和3元组)。如何提取仅包含双精度的样本?我试着以df1.l
df1.loc[lambda df: df.A > 0, :]
有没有一种更紧凑、更像蟒蛇的方法df1.loc[len(df1.A)>2,:]
的方式来做这件事,但很明显,pandas没有按照我期望的方式来传播这些值您可以在不使用lambda函数的情况下执行您想要执行的操作,如下所示:
df1.loc[df1.A>0,:]
可能文档已经过时。您必须重新启动
IDE
你的另一个:
将apply
与len
一起使用:
import pandas as pd
data = {'A': [(1,2), (1,2), (1,2), (1,2), (1,2,4), (1,2,3)],
'B': [13, 98, 23, 45, 64, 10]}
df = pd.DataFrame(data)
print (df)
A B
0 (1, 2) 13
1 (1, 2) 98
2 (1, 2) 23
3 (1, 2) 45
4 (1, 2, 4) 64
5 (1, 2, 3) 10
print (df[df.A.apply(len) >2])
A B
4 (1, 2, 4) 64
5 (1, 2, 3) 10
对我来说效果不错。可能重新启动anaconda或其他IDE。您确定要更新吗?你能通过键入pd来确认吗?它在我的机器上按预期工作。我用的是熊猫0.18.1。哦,太尴尬了!重新启动IDE工作正常。谢谢大家!你能删除这个问题吗?谢谢!下面是一个后续问题:假设df1现在是一个具有特性a的数据帧,但是值是混合的双元组和三元组(2元组和3元组)。如何提取仅包含双精度的样本?我试着以df1.loc[len(df1.A)>2,:]的形式来做这件事,但很明显,pandas并没有按照我期望的方式来传播这些值。