字符串函数5-9题(30 天 Pandas 挑战)

发布于:2024-07-06 ⋅ 阅读:(143) ⋅ 点赞:(0)

1. 相关知识点

1.5 字符串的长度条件判断

tweets=tweets[tweets['content'].str.len()>15]

1.6 apply映射操作

  • 参数是一列(axis=0)或一行(axis=1)的数据
    # a为一行数据
    employees['bonus']=employees.apply(lambda a: a[2] if(a[0]%2==1 and a[1][0]!='M') else 0,axis=1)
    

1.7 python大小写转换

users['name'].map(lambda x: x[0].upper()+x[1:].lower())

1.8 正则表达式匹配

# index的值为True或False
index=users['mail'].str.contains("^[a-zA-Z][0-9a-zA-Z\\.\\_\\/\\-]*@leetcode.com$",regex=True)

2.9 包含字符串查询

patients[patients['conditions'].str.contains('DIAB1')]

2. 题目

2.5 无效的推文

在这里插入图片描述

在这里插入图片描述

import pandas as pd

def invalid_tweets(tweets: pd.DataFrame) -> pd.DataFrame:
    return tweets[tweets['content'].str.len()>15][['tweet_id']]
    # return tweets[tweets['content'].apply(lambda x: True if len(x)>15 else False)][['tweet_id']]

2.6 计算特殊奖金

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pd

def calculate_special_bonus(employees: pd.DataFrame) -> pd.DataFrame:
    employees['bonus']=employees.apply(lambda a: a[2] if(a[0]%2==1 and a[1][0]!='M') else 0,axis=1)
    return employees[['employee_id','bonus']].sort_values('employee_id')

2.7 修复表中的名字

在这里插入图片描述
在这里插入图片描述

import pandas as pd

def fix_names(users: pd.DataFrame) -> pd.DataFrame:
    users['name']=users['name'].map(lambda x: x[0].upper()+x[1:].lower())
    return users

2.8 查找拥有有效邮箱的用户

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pd

def valid_emails(users: pd.DataFrame) -> pd.DataFrame:
    return users[users['mail'].str.contains("^[a-zA-Z][0-9a-zA-Z\\.\\_\\/\\-]*@leetcode.com$",regex=True)]

2.9 患某种疾病的患者

在这里插入图片描述
在这里插入图片描述

import pandas as pd

def find_patients(patients: pd.DataFrame) -> pd.DataFrame:
    return patients[patients['conditions'].str.contains('DIAB1')]

网站公告

今日签到

点亮在社区的每一天
去签到