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()
子句也有点搞不清楚这是如何应用的。
获取数据帧的所有列非常容易,而不仅仅是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"]
注意:与使用where
dropna
不同,下面是一个与上述方法相对应的简短解决方案。
而不是
df.where(df["B"] > 100).dropna()
只是利用
df[df["B"] > 100]