python如何获取boolean index,并删除该index对应的行

我有一个表,有一列是电影的语言,里面的内容如下
English,Sinhalese,Hindi
English,French
English,Cantonese
English,Portuguese,French,Japanese
English
English,German,French
English,Spanish,French
English,French

我要只保留含有French的行,其他的行都删除。
我的思路是这样的 先创建一个不包含‘French’的boolean index
然后再用这个index把相关的列删除,建一个新表。

请问用python的numpy pandas怎么写。需要详细语法。

使用pandas中的str.contains方法比较容易些,参考代码如下:

import pandas as pd 

df = pd.DataFrame({'cty': ['English, Sinhalese, Hindi',
                          'English, French',
                          'English, Cantonese',
                          'English, Portuguese French, Japanese',
                          'English',
                          'English, German, French',
                          'English, Spanish, French',
                          'English, French']})
print(df)
df1=df[df['cty'].str.contains('French')].reset_index().drop(['index'],axis=1)
print(df1)
#写入新的表格文件
df1.to_excel('abc.xlsx',index=False)

运行结果:

                  cty
0                       English, French
1  English, Portuguese French, Japanese
2               English, German, French
3              English, Spanish, French
4                       English, French

如对你有帮助,请点击我回答的右上方采纳按钮,采纳支持一下~~

用正则表达式保留french

import re
pattern = re.compile(ur'(?=French)')
str = u''
print(pattern.search(str))

或者直接删除。

delete from [table] where column not like '%French%'

我提供一个思路,你可以遍历这个表中这列内容,逐行遍历,然后在每一次遍历就做一下判断,
如果该行遍历的内容中含有字符串“French”,那么就执行删除操作,没有就不删除
如果对你有用,点击右上角给个采纳哦~