TypeError: Cannot perform 'ror_' with a dtyped [float64] array and scalar of type [bool]
TypeError: Cannot perform 'ror_' with a dtyped [float64] array and scalar of type [bool]
我想遍历 df['fyear']
列并删除 fyear
不等于 2009、2019 或 2020 的任何行。但是出现此错误:
TypeError: Cannot perform 'ror_' with a dtyped [float64] array and scalar of type [bool]
df = pd.DataFrame({'fyear': [2009, 2019, 2020, 2020, 2019, 2009, 2000, 2000, 2001]})
for row in df.iterrows():
if df["fyear"] != 2009 | df["fyear"] !=2019 | df["fyear"] !=2020:
df.drop(row)
EDIT 最佳解决方案是使用运算符 &
或 |
的布尔索引
df = df[(df['fyear'] == 2009) | (df['fyear'] == 2019) | (df['fyear'] == 2020)]
Python 使用 or
作为中缀关键字
df["fyear"] != 2009 or df["fyear"] !=2019 or df["fyear"] !=2020
甚至更好(更 pythonic 且可读)
df["fyear"] not in (2009,2019,2020)
我想遍历 df['fyear']
列并删除 fyear
不等于 2009、2019 或 2020 的任何行。但是出现此错误:
TypeError: Cannot perform 'ror_' with a dtyped [float64] array and scalar of type [bool]
df = pd.DataFrame({'fyear': [2009, 2019, 2020, 2020, 2019, 2009, 2000, 2000, 2001]})
for row in df.iterrows():
if df["fyear"] != 2009 | df["fyear"] !=2019 | df["fyear"] !=2020:
df.drop(row)
EDIT 最佳解决方案是使用运算符 &
或 |
df = df[(df['fyear'] == 2009) | (df['fyear'] == 2019) | (df['fyear'] == 2020)]
Python 使用 or
作为中缀关键字
df["fyear"] != 2009 or df["fyear"] !=2019 or df["fyear"] !=2020
甚至更好(更 pythonic 且可读)
df["fyear"] not in (2009,2019,2020)