在电子表格中名为“Bio”的列中删除带有“hate”字样的行

问题描述 投票:0回答:3

我想在下面的代码中添加一行我在Python中使用的代码,这样它就会删除第一列中带有'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)
python pandas
3个回答
2
投票

我会在调用contains之前添加lowercasing!这意味着仇恨,仇恨,仇恨将被捕获:

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

结果:


1
投票

如果要删除包含单词“hate”的字符串:

df = df[~df["Bio"].str.contains("hate")]

0
投票

使用这一行

df = df[df['Bio'] != 'hate']

如果列可以包含多个值,则可以使用

df = df[~df["Bio"].str.lower().contains("hate")]
© www.soinside.com 2019 - 2024. All rights reserved.