Чтение значений из другого файла Excel с использованием XLRD - PullRequest
0 голосов
/ 14 мая 2019

У меня есть два файла Excel, которые я прочитал в Python, используя xlrd. Первый столбец для каждого из файлов Excel отличается, но некоторые цифры совпадают. Я хотел бы вызвать каждую строку из файла Excel, который соответствует значениям столбца из другого файла Excel. Цель состоит в том, чтобы иметь возможность построить эти значения с помощью Matplotlib.

Для простоты мой первый файл Excel - это мой основной файл. Второй файл Excel должен соотноситься с этим.

 Excel file 1 (master_file):
      Distance    Temperature     Pressure
      5           57              1
      6           58              2
      8           55              1
      10          58              1
      37          65              1

 Excel file 2 (secondary_file):
      Distance    Temperature     Pressure
      5           57              1
      6           56              1
      7           58              2
      8           55              1
      10          58              1
      37          65              1

Так что, если значение в Distance для second_file = значение в Distance для master_file, я хотел бы вернуть этот вывод, чтобы я мог построить его. Я строю оба этих файла вместе на одном графике, но только те значения, которые соответствуют master_file.

Я бы хотел, чтобы результат был:

 distance = [5, 6, 8, 10, 37]
 master_file_T = [57, 58, 55, 58, 65]
 secondary_file_T= [57,56, 55, 58, 65]

 plt. plot (distance, master_file_T)
 plt. plot (distance, secondary_file_T)

Расстояние 7 для вторичного файла теперь исключено из моих графиков, поскольку в master_file нет коррелирующего расстояния для 7. У меня есть около 100 строк, чтобы пройти, поэтому я предполагаю, что цикл for какой-то путь? Я очень новичок в Python, поэтому любая помощь / руководство очень ценится.

1 Ответ

0 голосов
/ 14 мая 2019

вы можете использовать DataFrame.isin()

master_file  = pd.DataFrame()
master_file['Distance']= [5, 6, 8, 10, 37]
master_file['Temperature'] = [57, 58, 55, 58, 65]
master_file['Pressure'] = [1,2,1,1,1]

secondary_file = pd.DataFrame()
secondary_file['Distance'] = [5, 6, 7,8, 10, 37]
secondary_file['Temperature']= [57,56, 58,55, 58, 65]
secondary_file['Pressure'] = [1,1,2,1,1,1]
distance = master_file.Distance.tolist()
master_file_T = master_file.Temperature.tolist()
secondary_file_T = secondary_file[secondary_file.Distance.isin(master_file.Distance)].Temperature.tolist()

print(distance,master_file_T,secondary_file_T)
[5, 6, 8, 10, 37]  
[57, 58, 55, 58, 65]  
[57, 56, 55, 58, 65]
...