假设我有以下数据框:
ter_id shstr value
6 2018002000000 201 1740.0
7 2018002000000 201 10759.0
8 2018002000002 201 2.0
如何过滤掉最后六个符号ter_id
为零的行?这是期望的输出是:
ter_id shstr value
8 2018002000002 201 2.0
我做了一个布尔函数
def is_total(ter_id: str) -> bool:
if ter_id[:-6] == "000000":
return True
return False
但它使用失败并出现错误:
dataset.filter(is_total(dataset.ter_id))
...
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
熊猫版本是 1.0.1
为了根据列值过滤数据框,很少有理由编写自己的函数。您可以将条件作为布尔掩码传递到 df.loc[](假设您的 DataFrame 名为 df)。
df = df.loc[df["ter_id"].str[-6:] != "000000"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句