Можно ли объединить только несколько столбцов? У меня есть DataFrame df1 со столбцами x, y, z и df2 со столбцами x, a, b, c, d, e, f и т. Д.
Я хочу объединить два DataFrame на x, но я хочу объединить только столбцы df2.a, df2.b, а не весь DataFrame.
Результатом будет DataFrame с x, y, z, a, b.
Я мог бы объединить и удалить ненужные столбцы, но, похоже, есть способ получше.
Ответы:
Вы можете объединить суб-DataFrame (только с этими столбцами):
источник
list('xab')
берет каждый элемент (букву) строки 'xab' и преобразует его в элемент списка, поэтомуlist('xab')
возвращается['x', 'a', 'b']
. Это работает, если у каждого столбца в качестве имени есть одна буква. В вашем случае я думаю, вам нужно сделать df1.merge (df2 ['Unique_External_Users'], * other_arguments). ... Скорее всего, вы уже решили это, просто оставив это для новичков, таких как яВы хотите использовать ДВЕ скобки, поэтому, если вы выполняете действие типа ВПР:
Это даст вам все в исходном df + добавьте тот соответствующий столбец в df2, к которому вы хотите присоединиться.
источник
Если вы хотите удалить столбцы из целевого фрейма данных, но столбцы необходимы для объединения, вы можете сделать следующее:
Эта
.drop('key1')
часть предотвратит сохранение key1 в итоговом фрейме данных, несмотря на то, что в первую очередь требуется соединение.источник
KeyError: "['key1'] not found in axis"
Вы можете использовать
.loc
для выбора определенных столбцов со всеми строками, а затем вытащить их. Пример ниже:В этом примере вы объединяете dataframe1 и dataframe2. Вы выбрали внешнее левое соединение по ключу. Однако для dataframe2 вы указали,
.iloc
что позволяет указать нужные строки и столбцы в числовом формате. Используя:
, вы выбираете все строки, но[0:5]
выбираете первые 5 столбцов. Вы можете использовать.loc
для указания по имени, но если вы имеете дело с длинными именами столбцов, это.iloc
может быть лучше.источник
.loc
будет сделана копия , а на большом df это может быть болезненно. Возможно, лучше выполнить слияние, а затем сразу взять срез столбца в том же выражении.Это объединение выбранных столбцов из двух таблиц.
Если
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, тогдаисточник