使用XLRD从另一个Excel文件中读取值

时间:2019-05-14 04:38:20

标签: python xlrd

我有两个用xlrd读入Python的excel文件。每个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

因此,如果secondary_file的“距离”中的值= 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)

因为我在master_file中没有7的相关距离,所以从我的绘图中排除了第二个文件的距离7。我大约要经过100行,所以我假设要进行某种形式的for循环?我对Python很陌生,因此非常感谢您的帮助/指导。

1 个答案:

答案 0 :(得分:0)

您可以使用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]