在Pandas datafram中使用len()

2024-04-29 11:14:48 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的表情DataFrame

   StateAb    GivenNm    Surname                  PartyNm PartyAb  ElectedOrder
35      WA        Joe    BULLOCK   Australian Labor Party     ALP             2
36      WA  Michaelia       CASH                  Liberal      LP             3
37      WA      Linda   REYNOLDS                  Liberal      LP             4
38      WA      Wayne  DROPULICH  Australian Sports Party    SPRT             5
39      WA      Scott     LUDLAM          The Greens (WA)     GRN             6

我想列出一份姓氏超过9个字符的参议员名单。

所以我认为代码应该是这样的:

df[len(df.Surname) > 9]

但这引发了一个问题,我哪里做错了?


Tags: dataframedfpartysurname表情lpjoewa
2条回答

根据列中字符串的长度筛选数据帧的正确方法是

df[df['Surname'].str.len() > 9]

df['Surname'].str.len()为姓氏列创建一系列长度,然后df[df['Surname'].str.len() > 9]筛选出小于或等于9的长度。您要做的是检查序列本身的长度(它有多少行)。

看看pythonfilter函数。它正是你想要的。

df = [
    {"Surname": "Bullock-ish"},
    {"Surname": "Cash"},
    {"Surname": "Reynolds"},
]
longnames = list(filter(lambda s: len(s["Surname"]) > 9, df))
print(longnames)

>>[{'Surname': 'Bullock-ish'}]

西泽

相关问题 更多 >