如何在python中使用.loc创建不大于的条件
如何按条件从数据中排除行如何在python中使用.loc创建不大于的条件,python,pandas,Python,Pandas,如何按条件从数据中排除行 1-使用.loc I选择要移除的零件 2-问题是“年”中有空行,我想保留所有空行和
- 1-使用.loc I选择要移除的零件
- 2-问题是“年”中有空行,我想保留所有空行和<2020的任何内容
# dataframe
cw=
year name
2022 as
2020 ad
sd
sd
1988 wwe
1999 we
cw = cw.loc[cw['year']!>'2020']
问题是空字段,它很棘手。。。我需要保留所有不大于2020的值,因此我希望保留空值和较小值是否
不大于n
与小于或等于n
相同
cw = cw.loc[cw['year']!>'2020']
简直成了
cw = cw.loc[cw['year'] <= '2020']
“不大于”是“小于或等于”…或者你可以用
~(我的排除条件)
来否定整件事。还有为什么2020
在引号中?我不知道彼得为什么会被否决。这个问题是绝对正确的,并且有一个恰当的例子@pault也许他的DF中的年份类型是字符串?@roganjosh的问题是空字段,这很棘手。我需要保留不是>2020的所有内容,因此我希望保留空的和更小的values@Peter您将遇到的一个问题是,您当前将年份值作为字符串。您需要转换为时间戳或数字类型,以便
运算符能够正确工作。问题是空字段,这很棘手。我需要保留所有不大于2020的值,因此我希望保留空的较小值,在这种情况下,否定查询实际上是正确的答案。
import pandas as pd
cw = pd.DataFrame({"year": [2022, 2020, None, None, 1988, 1999],
"name": ["as", "ad", "sd", "sd", "wwe", "we"]}, dtype=int)
"""
year name
0 2022 as
1 2020 ad
2 None sd
3 None sd
4 1988 wwe
5 1999 we
"""
cw = cw.loc[~(cw["year"] > 2020)]
"""
year name
1 2020 ad
2 None sd
3 None sd
4 1988 wwe
5 1999 we
"""