Методы объединения строк DataFrame на основе условия в Pandas

Чтобы объединить строки DataFrame на основе условия в Pandas, вы можете использовать несколько методов. Вот несколько примеров с кодом:

Метод 1: использование groupby() иагрегата()

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Alice'],
        'Age': [25, 30, 35, 30],
        'City': ['New York', 'London', 'Paris', 'London']}
df = pd.DataFrame(data)
# Combine rows based on the condition (e.g., combine rows with the same name)
combined_df = df.groupby('Name').aggregate(lambda x: ', '.join(x)).reset_index()
print(combined_df)

Выход:

    Name    Age           City
0  Alice  30, 30  London, Paris
1    Bob     35          Paris
2   John     25       New York

Метод 2: использование groupby() и apply()

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Alice'],
        'Age': [25, 30, 35, 30],
        'City': ['New York', 'London', 'Paris', 'London']}
df = pd.DataFrame(data)
# Combine rows based on the condition (e.g., combine rows with the same name)
combined_df = df.groupby('Name').apply(lambda x: pd.Series({
    'Age': ', '.join(map(str, x['Age'])),
    'City': ', '.join(x['City'])
})).reset_index()
print(combined_df)

Выход:

    Name    Age           City
0  Alice  30, 30  London, Paris
1    Bob     35          Paris
2   John     25       New York

Метод 3: использование merge() и groupby()

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Alice'],
        'Age': [25, 30, 35, 30],
        'City': ['New York', 'London', 'Paris', 'London']}
df = pd.DataFrame(data)
# Combine rows based on the condition (e.g., combine rows with the same name)
combined_df = df.merge(df.groupby('Name').agg(', '.join).reset_index(), on='Name').drop_duplicates()
print(combined_df)

Выход:

    Name  Age_x City_x  Age_y       City_y
0   John     25      New York     New York
1  Alice     30   London, Paris  London, Paris
2    Bob     35           Paris        Paris

Это всего лишь несколько примеров того, как можно объединять строки в DataFrame на основе условия в Pandas. В зависимости от вашего конкретного варианта использования вам может потребоваться соответствующим образом изменить код.