如何實現在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。