首页 > 解决方案 > 在电子表格中我称为“Bio”的列中删除带有“hate”一词的行

问题描述

我想在下面的代码中添加一行我在 Phyton 中使用的代码,这样它将删除第一列中所有带有单词“hate”的行,即“Bio”:

import pandas as pd
from datetime import datetime

INPUT_FILE = 'Sample spreadsheet.xlsx'
OUTPUT_FILE = 'Output.xlsx'

df = pd.read_excel(INPUT_FILE)

df.dropna(subset=['Location', 'Full name'], inplace=True)

df = df[(df['Followers'] > 200) & (df['Friends'] > 200) & (df['Last tweet'] > '2011-04-12') & (df['Created'] < '2018-12-31')]
with pd.ExcelWriter(OUTPUT_FILE) as writer:
    df.to_excel(writer)

标签: pythonpandas

解决方案


我会在调用 contains 之前添加小写字母!这意味着 Hate, hat, HATE 会被抓住:

import pandas as pd
df = pd.DataFrame({'foo':[1,2],
               'bio':['i love pandas',
                      'i HATE ms excel']})

# normalize words to lowercase

#df = df[~ df['bio'].str.lower().str.contains('hate')]
df = df[~ df['bio'].str.contains('hate',case=False)]

熊猫文档:https ://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.contains.html

结果: 在此处输入图像描述


推荐阅读