2017-07-07 3 views
2

Wie wenn Schleifen verwenden und die folgende Bedingung erfüllen:Wie if-Anweisung verwenden und die folgende Operation ausführen?

zum Beispiel, wenn ich den folgenden Datentyp haben,

id count A count B variable A  variable sum 
AAA 6   34   AA    AA  10 
123 15   19   RA    RA  25 
AAA 61   04   AA    AA  85 
123 1   91   RS    RS  35 
123 66   89   RA    RA  25 
AAA 45   41   SP    SP  55 
123 62   39   SS    SS  45 

Für die gleiche ID, wenn die Variable A und Variable B gleich sind und nicht die gleichen, Ich möchte diese Operation durchführen.

wenn die Variable A = Variable B

df = df.assign(result = np.where(df.sum < 50, df.shift(1).count A, df.count A)) 

wenn die Variable A = Variable B

df = df.assign(result = np.where(df.sum > 50, df.shift(1).count A, df.count A)) 
+0

Sind Formeln für jede Bedingung gleich? – jezrael

Antwort

0

Es scheint, Sie Bedingungen mit () und & hinzufügen müssen (und):

m1 = (df['sum'] < 50) & (df['variable A'] == df['variable B']) 
df = df.assign(result = np.where(m1, df.shift(1)['count A'], df['count A'])) 

m2 = (df['sum'] > 50) & (df['variable A'] != df['variable B']) 
df = df.assign(result = np.where(m2, df.shift(1)['count A'], df['count A'])) 
+0

Danke !!!!!! : D –

+0

Hmmm, sind Spaltennamen in Formeln richtig? – jezrael

+1

Vielleicht denken 'df ['count B']' instaed 'df ['count A']' – jezrael

Verwandte Themen