#pandas #csv
#pandas #csv
Вопрос:
У меня есть фрейм данных, который выглядит так:
Type Brand A Brand B
Type A ID A ID AA
Type B ID A ID AA
Type A ID B ID BB
Type B ID B ID BB
Type B ID C ID CC
Type A ID C ID DD
Type B ID D ID EE
Type A ID D ID FF
Я хочу удалить или исключить строки данных из двух столбцов марки и столбца ype (должно быть пара)
результат моего желания выглядит так:
Type Brand A Brand B
Type A ID A ID AA
Type B ID A ID AA
Type A ID B ID BB
Type B ID B ID BB
заранее благодарю
Комментарии:
1. На каком основании мы пытаемся удалить строки?
Ответ №1:
Вы можете проверить, является ли количество уникальных значений по SeriesGroupBy.nunique
, а также количество DataFrameGroupBy.size
по группам парой ( 2
):
g = df.groupby(['Brand A','Brand B'])['Type']
df = df[g.transform('nunique').eq(2) amp; g.transform('size').eq(2)]
print (df)
Type Brand A Brand B
0 Type A ID A ID AA
1 Type B ID A ID AA
2 Type A ID B ID BB
3 Type B ID B ID BB
Если необходимо проверить Type A
и Type B
:
g = df.groupby(['Brand A','Brand B'])['Type']
df = df[g.transform(lambda x: set(x) == set(['Type A','Type B'])) amp; g.transform('size').eq(2)]
print (df)
Type Brand A Brand B
0 Type A ID A ID AA
1 Type B ID A ID AA
2 Type A ID B ID BB
3 Type B ID B ID BB