Чтобы объединить строки 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. В зависимости от вашего конкретного варианта использования вам может потребоваться соответствующим образом изменить код.