dataframe的某一列均为字符串格式,想筛选出含有特定字符串的行,具体实现代码如下:
data1=df[df['标题'].str.contains('摘要')]
df[ df['通信名称'].str.contains('联通|移动|小灵通|电信')]
df[ df['通信名称'].isin(['联通','移动','小灵通','电信'])]
包含的字符串比较多时就用’|‘管道符隔开
那如果是不包含呢,取出不包含这些字符串的数据怎么操纵呢,很简单,就是在前面加上一个~这种波浪符号就可以了
data1=df[~df['标题'].str.contains('摘要')]
dataframe的某一列均为字符串格式,想筛选出含有特定字符串的行,具体实现代码如下:data1=df[df['标题'].str.contains('摘要')]#这是使用语法,模糊匹配df[ df['通信名称'].str.contains('联通|移动|小灵通|电信')] #这一种方法不是匹配,而是等于后面列表中的值,要注意区别df[ df['通信名称'].isin(['联通','移动','小灵通','电信'])]包含的字符串比较多时就用’|‘管道符隔开那如果是不包含呢,取出不包含这些
date_key:某列的列名
‘8’:检索这一列中是否含有字符‘’8‘’
bool_index :列表形式,长度为dataframe的行数(值为true:该行含有该字符 或 false:该行不含有该字符)
filter_data :过滤后的dataframe数据
......
这样就可以筛选出‘地址’这一列中含有‘北京’所对应的行了。
但如果需要筛选不止一个地名,比如包含‘北京’、‘天津’、‘上海’…等城市所对应的行,经过测试,直接放入列表不行!
解决方法是将关键词都使用|进行连接,这样就可以一次性筛选
现有如下dataframe
import pandas as pd
data = [{'a':12, 'b':110}, {'a':11,'b':10}, {'a':12,'b':1}]
df = pd.DataFrame(data)
print df
以上代码输出如下结果
a b
0 12 110
1 11 10
2 12 1
想要输出a=12的每一行则可以通过以下办法:
print(d
您可以使用 pandas 的 str.contains() 方法来筛选包含特定字符串的列。例如,假设您的 DataFrame 名称为 df,您想要筛选出包含字符串 "apple" 的列,您可以使用以下代码:
df[df.columns[df.apply(lambda col: col.str.contains('apple')).any()]]
这将返回一个新的 DataFrame,其中包含所有包含字符串 "apple" 的列。