如何比较python3中的两个csv文件?
我想比较file1.csv列A与file2.csv列B,file1.csv列B与file2.csv列c,file1.csv列c与file2.csv列A如何比较python3中的两个csv文件?,python,csv,Python,Csv,我想比较file1.csv列A与file2.csv列B,file1.csv列B与file2.csv列c,file1.csv列c与file2.csv列A import pandas as pd df = pd.read_csv('table.csv', delimiter=',') list1 = [list(row) for row in df.values] #print(list_of_rows) df1 = pd.read_csv('output_csv_file.csv', delim
import pandas as pd
df = pd.read_csv('table.csv', delimiter=',')
list1 = [list(row) for row in df.values]
#print(list_of_rows)
df1 = pd.read_csv('output_csv_file.csv', delimiter=',')
list2 = [list(row) for row in df1.values]
#print(list_of_rows1,"********************8")
new_items = []
for item in list2:
if not any(x[1] == item[1] for x in list1):
if not any(x[2] != item[2] for x in list1):
new_items.append(item)
示例输入文件和我添加的预期输出文件请指导我
file1
col_A clo_B clo_C col_D
12345 2020-09-08 09:10:20 10.100.90.89 15
file2
col_A clo_B clo_C col_D col_E col_F
10.100.90.89 21301 2020-09-08 09:10:20 15 1 6
10.100.90.89 12345 2020-09-08 09:10:20 15 1 6
10.100.90.89 12345 2020-06-08 09:10:20 15 1 6
Output:
col_A clo_B clo_C col_D col_E col_F
10.100.90.89 21301 2020-09-08 09:10:20 15 1 6
10.100.90.89 12345 2020-06-08 09:10:20 15 1 6
如果您有数据帧:
list1 = [
['12345', '2020-09-08 09:10:20', '10.100.90.89', '15']
]
list2 = [
['10.100.90.89','21301','2020-09-08 09:10:20','15','1','6'],
['10.100.90.89','12345','2020-09-08 09:10:20','15','1','6'],
['10.100.90.89','12345','2020-06-08 09:10:20','15','1','6'],
]
df1 = pd.DataFrame(list1, columns=['col_A','col_B','col_C','col_D'])
df2 = pd.DataFrame(list2, columns=['col_A','col_B','col_C','col_D','col_E','col_F'])
print(df1)
print(df2)
然后: 将删除重复项:
col_A col_B col_C col_D col_E col_F
0 10.100.90.89 21301 2020-09-08 09:10:20 15 1 6
2 10.100.90.89 12345 2020-06-08 09:10:20 15 1 6
你能编辑你的问题并把样本数据和预期输出放在那里吗?我编辑了请检查@Andrejkeslycan你能把CSV文件的内容样本和预期输出放在那里吗?我添加了请检查并帮助我@Andrejkeslycan你能解释规则吗,为什么最终输出有两行?有必要提及列名吗?@pythonnewbie根据您的示例,csv文件1的列顺序与csv文件2的列顺序不同,因此我对它们进行了相应的重新排序
tmp = pd.DataFrame(df1[['col_C', 'col_A', 'col_B', 'col_D']])
tmp.columns = ['col_A','col_B','col_C','col_D']
out = df2.merge(tmp, on=['col_A', 'col_B', 'col_C', 'col_D'], how='left', indicator=True)
out = out[out['_merge'] == 'left_only'].drop(columns='_merge')
print(out)
col_A col_B col_C col_D col_E col_F
0 10.100.90.89 21301 2020-09-08 09:10:20 15 1 6
2 10.100.90.89 12345 2020-06-08 09:10:20 15 1 6