我如何使用另一个CSV名称列表搜索CSV并返回,如果它使用python找到特定的单词



所以我有大约160个名字的CSV列表,我需要做一个脚本来搜索160个列表上的每个名字更大的列表(1800),其中包含关于该名称的名称和信息的其他列。在找到任何匹配的结果之后,它需要在该行上找到一个特定的单词,并打印初始名称。

小列表只包含名字。更大的列表包含姓名和几行信息。

基本上,以CSV 160name列表为例->搜索更大的1800 CSV ->当它在更大的列表中找到该名称时,检查整个行是否有特定的单词->如果找到,则返回名称甚至整个行。(不需要对没有匹配名称的行做任何操作)

我到目前为止所做的(记住我只是一个不太懂代码的人,只做了非常基本的东西),离完成还很远,我很困

import pandas as pd
specificlist = pd.read_csv('Small_list.csv')
General_list = pd.read_csv('Bigger_list.csv')
small_list = small_list.add_prefix('1_')
BigList = General_list.add_prefix('2_')

def compare_files(df):
if df['1_Name'] == df['2_Name']:
if df['2_Pet'] == 'Yes': 
return 1
else:
return 0

https://prnt。sc/wrdlz0我正在尝试的可视化表示

场景细节:A -名单B-姓名列表,包含相关地址,出生日期,是否有宠物(此栏中的"是"或"否"字答案不会出现在任何其他栏中)。

我想返回列表A中有宠物的人的名字

像这样:

import pandas
names = []
with open("Small_list.csv", "r") as f:
r = pandas.read_csv(f)
names = list(r["name"])
with open("Bigger_list.csv", "r") as f:
# Skip the first line
f.readline()
for line in f:
cur_name = line.split(",")[0]
if cur_name in names and cur_name not in available_names:
available_names.append(cur_name)

在这个问题中你真的不需要熊猫。事实上,我可以删除它:

names = []
available_names = []
with open("Small_list.csv", "r") as f:
# Skip the first line
f.readline()
for line in f:
names.append(line.strip("n"))
with open("Bigger_list.csv", "r") as f:
# Skip the first line
f.readline()
for line in f:
cur_name = line.split(",")[0]
if cur_name in names and cur_name not in available_names:
available_names.append(cur_name)

您可以合并两个数据框,然后选择其中Pets为No的行,并选择名称和宠物值。

import pandas as pd
names_df = pd.DataFrame({'Name': ['Anne', 'John', 'Lisa', 'Marie']})
data_df = pd.DataFrame({
'Name': ['Anne', 'Kevin', 'Clio', 'Lisa', 'Raisa', 'Matt', 'John', 'Marie'],
'Age': [23, 27, 43, 28, 32,19, 34, 21],
'Pets': ['Yes','Yes','No','No','Yes','No','Yes','No']
})
merged_df = names_df.merge(data_df, on='Name')
print(merged_df.loc[merged_df['Pets'] == 'No'][['Name', 'Pets']])

Name Pets
2   Lisa   No
3  Marie   No

最新更新