pandas добавьте столбец, используя другой столбец в качестве своего индекса [duplicate]

Если вам нужно что-то более точное, тогда посмотрите на это .

Формулы Винценти - это два связанных итерационных метода, используемых в геодезии, для вычисления расстояния между двумя точками на поверхности сфероида, разработанной Таддеусом Винценти (1975а). Они основаны на предположении, что фигура Земли является сплюснутым сфероидом и, следовательно, более точна, чем методы, такие как расстояние между большими кругами, которое принимает сферическую Землю.

Первый (прямой) метод вычисляет местоположение точки, которая является заданным расстоянием и азимутом (направлением) от другой точки. Второй (обратный) метод вычисляет географическое расстояние и азимут между двумя заданными точками. Они широко используются в геодезии, поскольку они точны с точностью до 0,5 мм (0,020 дюйма) на эллипсоиде Земли.

blockquote>

44
задан Ajean 22 December 2016 в 02:08
поделиться

4 ответа

Вы можете объединить суб-DataFrame (только с этими столбцами):

df2[list('xab')]  # df2 but only with columns x, a, and b

df1.merge(df2[list('xab')])
38
ответ дан beroe 18 August 2018 в 09:41
поделиться
  • 1
    Хм, интересно, должен ли быть родной способ сделать это, например подмножество в dropna ... соберет проблему github – Andy Hayden 31 July 2013 в 20:12

Вы можете использовать .loc, чтобы выбрать конкретные столбцы со всеми строками, а затем потяните это. Ниже приведен пример:

pandas.merge(dataframe1, dataframe2.iloc[:, [0:5]], how='left', on='key')

В этом примере вы объединяете dataframe1 и dataframe2. Вы выбрали внешнее левое соединение на «ключ». Однако для dataframe2 вы указали .iloc, который позволяет вам указать строки и столбцы, которые вы хотите в числовом формате. Используя :, вы выбираете все строки, но [0:5] выбирает первые 5 столбцов. Вы можете использовать .loc для указания по имени, но если вы имеете дело с длинными именами столбцов, тогда .iloc может быть лучше.

4
ответ дан Ajean 18 August 2018 в 09:41
поделиться
  • 1
    Остерегайтесь того, что .loc сделает копию , и на большой df, которая может быть болезненной. Возможно, было бы лучше слить, а затем сразу же взять срез столбца в том же выражении. – smci 19 April 2018 в 06:33

Вы хотите использовать TWO-скобки, поэтому, если вы выполняете вид действия VLOOKUP:

df = pd.merge(df,df2[['Key_Column','Target_Column']],on='Key_Column', how='left')

Это даст вам все в исходном файле df +, добавив в соответствующий столбец в df2, что вы хочу присоединиться.

20
ответ дан Arthur D. Howland 18 August 2018 в 09:41
поделиться

Это объединить выбранные столбцы из двух таблиц.

Если table_1 содержит столбцы t1_a,t1_b,t1_c..,id,..t1_z, а table_2 содержит столбцы t2_a,t2_b,t2_c...,id,..t2_z, а в итоговой таблице требуются только t1_a, id, t2_a, затем

mergedCSV = table_1[['t1_a','id']].merge(table_2[['t2_a','id']], on = 'id',how = 'left')

#save resulting output file

mergedCSV.to_csv('output.csv',index = False)

3
ответ дан Marco167 18 August 2018 в 09:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: