编辑:原来我最初的问题只是一个版本问题。但是,在回答我最初的问题的过程中,还解决了一些其他问题,因此我重新措辞了这些问题并将它们列在下面:
我正在熟悉一些 pandas 功能,即 selection by callables .文档建议使用 lambda 函数,例如提取数据帧 df1 中特征“A”的值 > 0 的所有样本:
df1.loc[lambda df: df.A > 0, :]
有没有更紧凑的 pythonic 方式来做到这一点?
假设 df1 现在是一个具有特征 A 的数据框,但值是混合的 double 和三元组(二元组和三元组)。如何提取仅包含 double 的样本?我尝试以 df1.loc[len(df1.A)>2,:]
的形式执行此操作,但很明显 pandas 没有按照我期望的方式广播值。
<
您必须重新启动 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
我是一名优秀的程序员,十分优秀!