编辑:原来我的问题只是一个版本问题。但是,在回答我的初步问题的过程中,还解决了其他几个问题,因此我对这些问题进行了重写,并将其列在下面:
我熟悉一些大熊猫的功能,即selection by callables。文档建议使用lambda函数,例如使用值>提取数据帧df1中的所有样本0表示功能' A':
df1.loc[lambda df: df.A > 0, :]
是否有更紧凑,更pythonic的方式来做到这一点?
让我们说df1现在是一个带有特征A的数据帧,但这些值是混合的双精度和三元组(2和3元组)。如何提取仅含有双倍的样本?我尝试将此作为df1.loc[len(df1.A)>2,:]
,但很清楚,大熊猫没有像我期望的那样广播价值。
答案 0 :(得分:2)
您必须重新启动IDE
。
您的另一个question:
将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
答案 1 :(得分:1)
如果没有lambda函数,您可以执行以下操作:
df1.loc[df1.A>0,:]
也许文档已经过时了。