Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用.loc创建不大于的条件_Python_Pandas - Fatal编程技术网

如何在python中使用.loc创建不大于的条件

如何在python中使用.loc创建不大于的条件,python,pandas,Python,Pandas,如何按条件从数据中排除行 1-使用.loc I选择要移除的零件 2-问题是“年”中有空行,我想保留所有空行和

如何按条件从数据中排除行

  • 1-使用.loc I选择要移除的零件
  • 2-问题是“年”中有空行,我想保留所有空行和<2020的任何内容
我会用!<但是不起作用,python只是接受=

# 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
"""