Добро пожаловать на ТАК! В будущем, пожалуйста, предоставьте пример входных данных, желаемый вывод и любые попытки кода, которые вы сделали.
Вот способ, которым вы можете достичь своей цели, если я правильно понимаю.
import pandas as pd
data = pd.DataFrame(
{
'material': ['wood', 'metal', 'metal', 'glass', 'glass', 'tyres'],
'uses': ['house', 'house', 'car', 'house', 'car', 'car']
}
)
Наш набор данных:
material uses
0 wood house
1 metal house
2 metal car
3 glass house
4 glass car
5 tyres car
Тогда:
data.groupby('material').agg(', '.join)[(grouped['uses'].str.contains('house')) & (grouped['uses'].str.contains('car'))]
Сначала мы группируем по material
и создаем строку со всеми предметами, которые были сделаны с использованием этого материала. Это создает фрейм данных. Затем мы можем применить два булевых условия для проверки наличия house
и car
в построенной строке.
Результат:
material uses
glass house, car
metal house, car