Служба помощи WCF для нового программиста

Собственно, отбрасывать строки 0 и 1 требуется только (любые наблюдения, содержащие совпадающие A и C, сохраняются.):

In [335]:

df['AC']=df.A+df.C
In [336]:

print df.drop_duplicates('C', take_last=True) #this dataset is a special case, in general, one may need to first drop_duplicates by 'c' and then by 'a'.
     A  B  C    AC
2  foo  1  B  fooB
3  bar  1  A  barA

[2 rows x 4 columns]

Но я подозреваю, что вы действительно этого хотите (одно наблюдение, содержащее согласованное A и C сохраняется.):

In [337]:

print df.drop_duplicates('AC')
     A  B  C    AC
0  foo  0  A  fooA
2  foo  1  B  fooB
3  bar  1  A  barA

[3 rows x 4 columns]

Изменить:

Теперь это намного яснее, поэтому:

In [352]:
DG=df.groupby(['A', 'C'])   
print pd.concat([DG.get_group(item) for item, value in DG.groups.items() if len(value)==1])
     A  B  C
2  foo  1  B
3  bar  1  A

[2 rows x 3 columns]
0
задан Seymour 26 February 2015 в 12:21
поделиться