我有两个用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很陌生,因此非常感谢您的帮助/指导。
答案 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]