Циклы в мультиплексном фрейме данных python - PullRequest
0 голосов
/ 13 марта 2020

У меня 47 датафреймов, и мне нужно запустить рутину на всех из них. Я хочу знать, могу ли я делать с oop, а не один за другим. Это процедура, которую я должен запустить на всех фреймах данных. Спасибо


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()
BASO = BASODF.assign(DifLat = BASODF.iloc[0,0]-BASODF['Lat'], DifLon = BASODF.iloc[0,1]-BASODF['Lon'], Difh = BASODF.iloc[0,2]-BASODF['h'])```.




1 Ответ

0 голосов
/ 13 марта 2020

Вы можете поместить все кадры данных в список, а затем 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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...