如何按列值切片过滤 Pandas DataFrame

编码

假设我有以下数据框:

    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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按列值在DataFrame切片上查找计算函数的最快方法(Python pandas)

能否将Pandas DataFrame的多列按不同的值切片

如何在Python Pandas DataFrame中切片列值

如何切片pandas.DataFrame?

按位置切片MultiIndex pandas DataFrame

python pandas dataframe按日期条件切片

python pandas dataframe按日期条件切片

基于条件的Pandas DataFrame切片列

如何基于Pandas DataFrame中的切片正确设置值

如何通过析取语句(逻辑“或”)切片pandas DataFrame?

如何为带有多索引的pandas DataFrame的切片分配新列?

如何切片具有MultiIndex索引和MultiIndex列的Pandas DataFrame?

根据行数切片Pandas Dataframe

Pandas:制作每月的 DataFrame 切片

用DatetimeIndex切片Pandas DataFrame

如何使用Python Pandas在特定切片中制作DataFrame和“ fillna”切片?

Pandas DataFrame:SettingWithCopyWarning:试图在DataFrame的切片副本上设置一个值

当列标题是日期时间值时,如何按列标题值对Pandas数据进行切片?

pandas:尝试在DataFrame的切片副本上设置一个值

使用索引值列表对Pandas MultiIndex DataFrame进行切片

Pandas SettingWithCopyWarning:正在尝试从DataFrame的切片副本上设置一个值

Pandas.to_datetime() 试图在 DataFrame 的切片副本上设置值

按列列表中的值过滤Pandas DataFrame

重塑Pandas Dataframe切片列并将其添加为行

使用pandas str.find方法在dataframe列中切片字符串

在 Pandas 中创建新列的警告消息 - 从 DataFrame 切片

如何在不使用for循环的情况下基于来自另一个Dataframe的值对pandas DataFrame进行切片?

具有按相邻列值的多索引的 DataFrame 切片

在条件中使用排序切片 Pandas Dataframe