Excel в Python - сужение строк на основе значений столбцов - PullRequest
0 голосов
/ 01 ноября 2018

Очень плохо знаком с Python, так что терпите меня.

Я хочу отфильтровать электронную таблицу Excel с помощью Python и предоставил приведенный ниже пример, чтобы помочь объяснить. Для контекста я использовал Pandas, чтобы вытащить файл.

Я перечислил две колонки: материалы и что эти материалы используются для изготовления. По сути, я хочу свести к минимуму электронную таблицу, чтобы увидеть только материалы, которые используются для изготовления как Дома, так и Автомобиля (то есть не одного или другого).

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 01 ноября 2018

Добро пожаловать на ТАК! В будущем, пожалуйста, предоставьте пример входных данных, желаемый вывод и любые попытки кода, которые вы сделали.

Вот способ, которым вы можете достичь своей цели, если я правильно понимаю.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...