Соединение dataframe в pandas: concat
Pandas concat используется для объединения (конкатенации) данных из разных источников в один DataFrame. Этот метод позволяет нам комбинировать данные вертикально или горизонтально. Объединение данных может быть полезно, когда у нас есть несколько наборов данных с общей структурой, и мы хотим их объединить для более удобного анализа.
Давайте рассмотрим примеры кода, чтобы лучше понять, как работает pandas concat.
-
Объединение вертикально:
Предположим, у нас есть два DataFrame, df1 и df2, с одинаковой структурой, но разными данными. Мы хотим объединить эти два DataFrame, чтобы получить новый DataFrame.
<pre class="python"> import pandas as pd # Создание DataFrame1 data1 = {'Name': ['John', 'Amy', 'Michael'], 'Age': [25, 30, 35]} df1 = pd.DataFrame(data1) # Создание DataFrame2 data2 = {'Name': ['Emily', 'Samuel'], 'Age': [28, 32]} df2 = pd.DataFrame(data2) # Объединение вертикально result = pd.concat([df1, df2]) print(result) </pre>Результат:
<pre> Name Age 0 John 25 1 Amy 30 2 Michael 35 0 Emily 28 1 Samuel 32 </pre> -
Объединение горизонтально:
Допустим, у нас есть два DataFrame, df1 и df2, с разной структурой и мы хотим объединить их по горизонтали.
<pre class="python"> import pandas as pd # Создание DataFrame1 data1 = {'Name': ['John', 'Amy', 'Michael'], 'Age': [25, 30, 35]} df1 = pd.DataFrame(data1) # Создание DataFrame2 data2 = {'Salary': [50000, 60000, 70000]} df2 = pd.DataFrame(data2) # Объединение горизонтально result = pd.concat([df1, df2], axis=1) print(result) </pre>Результат:
<pre> Name Age Salary 0 John 25 50000 1 Amy 30 60000 2 Michael 35 70000 </pre> -
Использование ключей (keys) для идентификации источников данных:
Мы также можем использовать ключи (keys) для идентификации источников данных при объединении. Это особенно полезно, когда у нас есть больше двух наборов данных для объединения.
<pre class="python"> import pandas as pd # Создание DataFrame1 data1 = {'Name': ['John', 'Amy'], 'Age': [25, 30]} df1 = pd.DataFrame(data1) # Создание DataFrame2 data2 = {'Name': ['Michael'], 'Age': [35]} df2 = pd.DataFrame(data2) # Объединение с использованием ключей result = pd.concat([df1, df2], keys=['Source1', 'Source2']) print(result) </pre>Результат:
<pre> Name Age Source1 0 John 25 1 Amy 30 Source2 0 Michael 35 </pre>
Это лишь некоторые примеры использования pandas concat. Этот метод дает нам гибкость в работе с данными и обеспечивает удобство в анализе и объединении различных источников данных.