Вы можете поместить все кадры данных в список, а затем l oop поверх этого списка. Например:
dataframes = [BASO1, BASO2, BASO3]
for index, BASO in enumerate(dataframes):
x = BASO['X'].values
y = BASO['Y'].values
z = BASO['Z'].values
ecef = pyproj.Proj(proj='geocent', ellps='WGS84', datum='WGS84')
lla = pyproj.Proj(proj='latlong', ellps='WGS84', datum='WGS84')
BASOT = pyproj.transform(ecef, lla, x, y, z, radians=False)
BASODF = pd.DataFrame(BASOT, index=("Lat", "Lon", "h")).append(BASO['Fecha']).transpose()
dataframes[index] = BASODF.assign(DifLat = BASODF.iloc[0,0]-BASODF['Lat'], DifLon = BASODF.iloc[0,1]-BASODF['Lon'], Difh = BASODF.iloc[0,2]-BASODF['h'])
Здесь список данных должен содержать все ваши экземпляры данных. Затем он проходит по каждому фрейму данных, где enumerate(dataframes)
получает фрейм данных и его индекс в списке, который затем используется в последней строке для записи изменений непосредственно в зацикленный список.
Если вы хотите иметь отдельные имена снова после обработки этих кадров данных, вы можете сделать:
BASO1, BASO2, BASO3 = dataframes
Надеюсь, это поможет.