使用Pandas选择包含特定文本的行
在数据分析中,Pandas是一个常用的库。有时候,我们需要选择包含特定文本的行进行分析。本文将介绍如何使用Pandas选择包含特定文本的行。
准备工作
我们首先需要安装Pandas库。可以使用以下命令安装:
pip install pandas
安装完成后,可以使用以下代码导入Pandas:
import pandas as pd
接下来,我们需要创建一个包含文本的DataFrame,用于模拟实际情况。以下是一个示例代码:
import pandas as pd
data = {
'名字': ['张三', '李四', '王五', '赵六'],
'年龄': [20, 25, 30, 35],
'城市': ['北京', '上海', '深圳', '广州'],
'职业': ['医生', '教师', '程序员', '设计师']
}
df = pd.DataFrame(data)
代码中定义了一个字典,包含名字、年龄、城市和职业四个字段。然后,我们使用DataFrame方法创建了一个包含4行数据的DataFrame。
选择包含特定文本的行
选择包含特定文本的行,可以使用DataFrame的str属性和contains()方法。下面是一个示例代码:
import pandas as pd
data = {
'名字': ['张三', '李四', '王五', '赵六'],
'年龄': [20, 25, 30, 35],
'城市': ['北京', '上海', '深圳', '广州'],
'职业': ['医生', '教师', '程序员', '设计师']
}
df = pd.DataFrame(data)
# 选择城市包含"京"的行
new_df = df[df['城市'].str.contains('京')]
print(new_df)
此处我们选择包含字母“京”的城市所在行。使用str属性和contains()方法后,会对DataFrame中的每一行进行判断,返回True或False,并生成一个布尔类型的Series。然后,我们筛选出包含True的行,也就是包含特定文本的行。
输出结果如下:
名字 年龄 城市 职业
0 张三 20 北京 医生
忽略大小写
有时候,我们选择包含特定文本的行时,需要忽略文本中的大小写。可以使用case参数进行忽略大小写的查询。以下是一个示例代码:
import pandas as pd
data = {
'名字': ['张三', '李四', '王五', '赵六'],
'年龄': [20, 25, 30, 35],
'城市': ['北京', '上海', '深圳', '广州'],
'职业': ['医生', '教师', '程序员', '设计师']
}
df = pd.DataFrame(data)
# 忽略大小写选择城市包含"b"的行
new_df = df[df['城市'].str.contains('b', case=False)]
print(new_df)
此处我们选择城市包含字母“b”的行,并忽略大小写。使用contains()方法时,将case参数设置为False即可。
输出结果如下:
名字 年龄 城市 职业
0 张三 20 北京 医生
多重条件
在实际情况中,我们往往需要同时满足多个条件,才能选择合适的行。可以使用&运算符实现多重条件。以下是一个示例代码:
import pandas as pd
data = {
'名字': ['张三', '李四','王五', '赵六'],
'年龄': [20, 25, 30, 35],
'城市': ['北京', '上海', '深圳', '广州'],
'职业': ['医生', '教师', '程序员', '设计师']
}
df = pd.DataFrame(data)
# 多重条件选择城市为"深圳"且职业为"程序员"的行
new_df = df[(df['城市'] == '深圳') & (df['职业'] == '程序员')]
print(new_df)
此处我们选择城市为“深圳”且职业为“程序员”的行。使用&运算符可以实现多条件的查询。
输出结果如下:
名字 年龄 城市 职业
2 王五 30 深圳 程序员
结论
本文介绍了如何使用Pandas选择包含特定文本的行。我们可以使用DataFrame的str属性和contains()方法实现包含特定文本的查询,并使用case参数实现大小写的忽略。在多条件的情况下,可以使用&运算符实现多重条件的查询。