【发布时间】:2018-05-07 16:22:28
【问题描述】:
我目前在处理 Pandas 中的数据帧时遇到了方法链接问题,这是我的数据结构:
import pandas as pd
lst1 = range(100)
lst2 = range(100)
lst3 = range(100)
df = pd.DataFrame(
{'Frenquency': lst1,
'lst2Tite': lst2,
'lst3Tite': lst3
})
问题是如果频率小于6,则获取条目(行),但需要在方法链接中完成。
我知道使用传统方式很容易,我可以这样做
df[df["Frenquency"]<6]
得到答案。
但是,问题是关于如何使用方法链接来做到这一点,我尝试了类似
df.drop(lambda x:x.index if x["Frequency"] <6 else null)
但它引发了错误"[<function <lambda> at 0x7faf529d3510>] not contained in axis"
谁能分享一下这个问题?
【问题讨论】:
-
Frequency中有一个错字(你写过一次Frenquency),它在 python 中是None而不是null。 -
方法链是什么意思?如果你有多个条件,你可以
&他们一起,例如df[(df.Frequency < 6) & (df.lst2Tite > 3)]。你的情况还不够吗? -
@scnerd 通过方法链接,我的意思是像 `df = (df.rename(something") .drop("something") .assign("something") ) `按函数的数据帧并在每个步骤中返回一个数据帧,我认为方法链接的另一个词是“Pythonic”?
-
感谢纠正我,@mrCarnivore 我放在这里的代码只是演示这个想法,但如果我输入正确会更有意义:)
-
该术语是“流畅的界面”。 Pandas 确实 支持这一点,不过,我不确定它是否一定是 pythonic —— 我想这取决于你的口味。请注意,大多数内置 python 对象不支持流畅的界面。
标签: python pandas dataframe lambda