Вы рядом. Вам нужно merge
фреймы данных вместо их объединения. В этом случае вы хотите объединить одно и то же значение ключа.
Ваша проблема немного сложнее (не намного), потому что ваши файлы .csv не в стандартной форме, поскольку у вас есть несколько пробелов между значениями вместо запятых ('c' в csv).
Это работает. Следует отметить, что в другом файле есть строчные буквы «v c» и «V C», которые не совпадают. Возможно, это опечатка?
import pandas as pd
first = pd.read_csv('1st.csv', sep= '\s+')
second = pd.read_csv('2nd.csv', sep= '\s+')
merged = first.merge(second, how='outer', on='step')
print(merged)
merged.to_csv('merged.csv', na_rep='pass', index=False)
Результат:
step item_x path_of_logfile_x value_x item_y path_of_logfile_y value_y
0 adi landlord /home/abcd.txt 1000.0 landlord /home/txt 4500
1 vc abcd /hom/efgh.txt 2000.0 NaN NaN NaN
2 VC NaN NaN NaN abcd /home/efgh.txt 3000
3 DC NaN NaN NaN abcd /home/efgh.txt pass
CSV-файл:
step,item_x,path_of_logfile_x,value_x,item_y,path_of_logfile_y,value_y
adi,landlord,/home/abcd.txt,1000.0,landlord,/home/txt,4500
vc,abcd,/hom/efgh.txt,2000.0,pass,pass,pass
VC,pass,pass,pass,abcd,/home/efgh.txt,3000
DC,pass,pass,pass,abcd,/home/efgh.txt,pass