提问者:小点点

在Series Vs DataFrame上需要的where()函数解释


df有A、B、C、D、E列,假设列“A”是字符串,其余是数字。

df[“A”]。式中(df[B]

我的问题是df[“A”](它是原始df的一个视图)没有列“B”,那么“where”子句如何应用于列B.[where()子句应用于df[“A”],而不是整个“df”]

df[“A”]的类型是一个系列,即使是列“B”上的where()子句也有点搞不清楚这是如何应用的。


共1个答案

匿名用户

获取数据帧的所有列非常容易,而不仅仅是A

只需删除[“A”]部分:

df["A"].where(df["B"] > 100).dropna()

df.where(df["B"] > 100).dropna()

现在您可以执行以下操作:

>>> subset = df.where(df["B"] > 100).dropna()
>>> subset["B"]
...
>>> subset["A"]

注意:与使用wheredropna不同,下面是一个与上述方法相对应的简短解决方案。

而不是

df.where(df["B"] > 100).dropna()

只是利用

df[df["B"] > 100]