如何实现在Pandas中过滤数据帧的语法? (df[df.column1 > someValue]
)如何复制熊猫语法? (要过滤数据帧)
我正在尝试使过滤数据帧时具有相同Pandas语法的类。
如何复制的语法为数据帧df = DataFrame(someData)
像这样的:
df[df.column1 > someValue]
我实现的方法__getattr__
和__getitem__
为
df.column1
df['column1']
的语法,但我不知道如何将两者连接在一起。另外,我找不到从Pandas代码复制的功能。
对这个问题的实现或对Pandas函数的引用都会有很大的帮助。
编辑:(解决方案)
继答案我实现了__getitem__
功能如下提示:
from tier tools import compress
def __getitem__(self, name):
"""Get items with [ and ]
"""
#If there is no expression, return a column
if isinstance(name, str):
return self.data[name]
#if there was an expression return the dataframe filtered
elif isinstance(name, list):
ind = list(compress(range(len(name)), name))
temp = DataFrame([[self.data[c].values[i]
for i in ind]
for c in self.columns],
columns=self.columns)
return temp
请注意,我也不得不实施我的专栏类的比较方法(系列)。 完整的代码可以看到here。