我需要比较两个 csv 文件并打印出它们的相似之处。第一个文件有名称和浓度,第二个文件就像只有名称的“最佳”列表,我需要绘制相似性图表。
例如,这就是我的列表的样子:
file1-old_file.csv
name_id, conc_test1, conc_test2
name1, #### , ####
name2, ####, ####
...
等等..
file2-best_choice_file.csv
name_id
name1
name2
...
我知道这不是最好的方法,但这就是我尝试的方法:
file1 = pd.read_csv('old_file.csv')
file2 = pd.read_csv('best_choice_file.csv')
common_rows = pd.merge(file1, file2)
print("common rows:")
print(common_rows)
这会导致合并错误。 如果有人可以帮助我,我将非常感激!
合并错误是由于尝试合并的 DataFrame 中没有公共列导致的。虽然文件共享“name_id”,但 pandas 并不知道应该根据这些列进行合并。
以下是如何更正的代码以比较两个 CSV 文件并打印出相似之处的方法:
import pandas as pd
# 从 CSV 文件中读取数据
file1 = pd.read_csv('old_file.csv')
file2 = pd.read_csv('best_choice_file.csv')
# 使用 'name_id' 作为连接键合并文件
common_rows = pd.merge(file1, file2, on='name_id')
# 打印常见行
print("Common rows:")
print(common_rows)
# 如果只想绘制常见名称列表,可以使用以下内容:
common_names = file1['name_id'].isin(file2['name_id']).sum()
print(f"\nNumber of common names: {common_names}")
此代码首先从两个 CSV 文件中读取数据到 pandas DataFrame 中。然后,它使用
merge()
函数根据“name_id”列合并两个 DataFrame。
on='name_id'
参数告诉 pandas 使用此列作为连接键。
最后,它打印包含两个文件中都存在的名称及其相应浓度的共同行。它还打印文件中存在的常见名称的数量。
此代码将为提供两个文件中存在的常见名称及其浓度的更清晰的表示。
标签:python,list,csv,graph,spyder From: 78808730