首页 > 解决方案 > 如何在 CSV 文件的列中搜索字符串

问题描述

我正在尝试创建一个代码,它将在我的数据框的列中搜索所需的字符串。例如,我想将名称中带有“general”的所有公司以及以后(单独的问题)以“T”开头的所有公司放入数据框中。对于第一个问题,我有以下代码:

import pandas as pd
import csv
Forbes = pd.read_csv('Forbes2000.csv')
pd.set_option('precision', 2)
Forbes.columns=['#','Rank','Name','Country','Category','Sales','Profits','Assets','Marketvalue',]
for item in lines:
    if 'General' in Forbes["Name"]:
        Forbes.head()

这并没有真正返回任何东西。我得到“名称错误:名称'行'未定义。” 我尝试过类似以下的方法:

import pandas as pd
import csv
Forbes = pd.read_csv('Forbes2000.csv')
pd.set_option('precision', 2)
Forbes.columns=['#','Rank','Name','Country','Category','Sales','Profits','Assets','Marketvalue',]
Forbes[ Forbes["Name"] == "General"].head()

这没有返回任何内容,我相信这是因为 python 正在“名称”中搜索一个完全称为“常规”的项目,而不是仅仅搜索它的外观。我可以让 python 打印名称中包含“General”的所有公司,例如我的列表中的“General Motors”或“General Electric”,我能得到什么?这是一个有点不同的问题,但从那里,我将如何打印所有以字母“T”开头的公司?

标签: pythonstringpandascsv

解决方案


import pandas as pd
df = pd.DataFrame(['General motor','abc','General Electric','xyz'], columns = ['name'])

df[df['name'].str.contains('General')]
#op
    name
 0  General motor
 2  General Electric

推荐阅读