Я новичок в python, и мне удалось использовать применение в фрейме данных для создания нового столбца внутри фрейма данных.
X['Geohash']=X[['Lat','Long']].apply (lambda column: geohash.encode(column[0],column[1],precision=8), axis=1)
это вызывает функцию geohash с широтой и долготой для каждой строки и каждого столбца.
Теперь у меня есть два новых фрейма данных: один для широты, а другой для долготы. Каждый фрейм данных имеет двадцать столбцов, и я хочу, чтобы
.apply (lambda column: geohash.encode(column[0],column[1],precision=8), axis=1)
называется двадцать раз.
-Первый раз первый столбец dataframe-Latitude с первым столбцом dataframe-Longitude, затем
-второй раз, второй столбец dataframe-Latitude со вторым столбцом dataframe-Longitude.
Как я могу сделать эту итерацию для каждого столбца и на каждой итерации вызвать
.apply (lambda column: geohash.encode(column[0],column[1],precision=8), axis=1)
Я хочу получить новый фрейм данных с двадцатью столбцами, каждый из которых является результатом функции геохеширования.
Идеи будут оценены.
@Alex P, ваши требования сбивают с толку. Если вы упомянете свой фиктивный ввод и ожидаемый результат, будет легко ответить.
Я думал об этом. Что мой код не воспроизводим. Есть ли у вас какие-либо предложения о том, как я могу взять большие кадры данных и сделать их в коде, который может создать такой фрейм данных?
У меня есть два фрейма данных. В одном есть только Широты и двадцать столбцов. Другой имеет только долготы и двадцать столбцов. Двадцать столбцов — это просто разные снимки времени.

Вы можете сделать это, создав «пустой» фрейм данных с 20 столбцами, а затем используя df.columns[i] для перебора других фреймов данных — примерно так:
output = pd.DataFrame({i:[] for i in range(20)})
Это создает пустой фрейм данных со всеми нужными столбцами (пронумерованными).
Теперь предположим, что кадры данных долготы и широты называются «lon» и «lat». Нам нужно объединить их в один фрейм данных. Затем:
lonlat = lat.join(lon)
for i in range(len(output.columns)):
output[output.columns[i]] = lonlat.apply(lambda column: geohash.encode(column[lat.columns[i]],
column[lon.columns[i]],
precision=8), axis=1)
Здорово. Я смог отредактировать ваш код для себя, и он работает именно так, как мне нужно. Большое спасибо. Действительно! К сожалению, я не могу проголосовать за вас.
Рад, что смог помочь! Поскольку вы задали вопрос, вы можете принять мой ответ, щелкнув звездочку под стрелками «за» / «против».
Да! Я этого не знал!
у вас есть 2 базы данных, каждая со столбцом
LatitudeиLongtitude?