通过callables选择大熊猫

时间:2016-07-06 19:41:40

标签: python python-3.x pandas

编辑:原来我的问题只是一个版本问题。但是,在回答我的初步问题的过程中,还解决了其他几个问题,因此我对这些问题进行了重写,并将其列在下面:

  1. 我熟悉一些大熊猫的功能,即selection by callables。文档建议使用lambda函数,例如使用值>提取数据帧df1中的所有样本0表示功能' A':

    df1.loc[lambda df: df.A > 0, :]
    

    是否有更紧凑,更pythonic的方式来做到这一点?

  2. 让我们说df1现在是一个带有特征A的数据帧,但这些值是混合的双精度和三元组(2和3元组)。如何提取仅含有双倍的样本?我尝试将此作为df1.loc[len(df1.A)>2,:],但很清楚,大熊猫没有像我期望的那样广播价值。

2 个答案:

答案 0 :(得分:2)

您必须重新启动IDE

您的另一个question

applylen

一起使用
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,:]

也许文档已经过时了。