, когда я учился Python, работал над одним из наборов данных следующим образом:
**Col1** **Col2** **Col3**
dog Z st02
dog,cat Z st02
dog,bat,cat Z st02
bat,cat,elephant Y st02
dog,bat,cat,elephant Y st02
tiger Z st01
pigeon Z st01
pigeon,parrot Z st01
dove,parrot Z st01
pigeon,parrot Z st01
pigeon,parrot,dove Z st01
lion,leopard,cheetah Z st01
tiger,lion,leopard,cheetah Z st01
dog,tiger,cheetah Y st01
dog,tiger,leopard,cheetah Y st01
eagle,jaguar,Kangaroo,zebra Z st02
cheetah,eagle,jaguar,Kangaroo,zebra Z st02
Ожидаемый результат:
**Col1** **Col2** **Col3**
dog,bat,cat Z st02
dog,bat,cat,elephant Y st02
tiger,lion,leopard,cheetah Z st01
dog,tiger,leopard,cheetah Y st01
cheetah,eagle,jaguar,Kangaroo,zebra Z st02
pigeon,parrot,dove Z st01
Для того, чтобы извлечь вышеуказанное В качестве выходных данных я попытался отследить шаблоны и использовать приведенную ниже логику c:
data = pd.read_excel("data.xlsx")
data['Col4'] = data['Col1'].str.count(',')
v1 = []
v2 = []
v1.append(0)
v2.append(0)
for i in range(0,data.shape[0]-1):
x = data['Col2'][i]
y = data['Col2'][i+1]
t1 = data['Col3'][i]
t2 = data['Col3'][i+1]
g1 = (x == y) & (t1==t2)
d1 = data['Col1'][i]
d2 = data['Col1'][i+1]
c1 = data['Col4'][i]
c2 = data['Col4'][i+1]
flag = 0
if(all(x in d2 for x in d1)):
flag = 1
g2 = (flag == 1)&(c2>c1)
v1.append(g1)
v2.append(g2)
data['new_cond1'] = v1
data['new_cond2'] = v2
data['Final_flag'] = (data['new_cond1']==True)&(data['new_cond2']==True)
data_output = data[data['Final_flag']==True]
Но я не получил ожидаемый результат, скорее всего в выводе присутствуют несколько дополнительных строк. Может ли кто-нибудь помочь мне извлечь строки, упомянутые в ожидаемом выводе.
Из набора данных я пытаюсь извлечь 1) Строки, в которых максимальное количество животных разделено запятыми (или рассмотрите птиц, где бы ни был голубь / попугай / голубь упоминается). 2) Не обязательно, чтобы на Col2 или Col3 было только одно максимальное количество животных, может быть даже более одного Примера, как в случае строки №. 1 и строка № 5 с одинаковым значением в столбце 2 и столбце 3. Это связано с тем, что категория животных отличается в ряду № 1 и ряду № 5. Надеюсь, что все ясно.
Заранее спасибо!