0

This seems like such an easy problem but I'm stumped. I am trying to return a new dataframe (df3) containing the difference between df1 and df2. I don't care about differences in values, just column labels/indices. I've tried pd.columns.difference() but to no avail. My expected output is:

df1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 C C C C C C T T T T T S S S G N D A G N D A G N D A G N K M I L R K M I L R K M I L C C L C C C T T T T T S S S G N D A E N D A G N D A G N Y F V H Q E P W Y F V H Q E G N D A G N F A G G D A G N G Y D A G N D A G N D A G N df2 1 4 9 C C T G A G K L L C C T G A G Y H Y G A G G A G Expected df3: 2 3 5 6 7 8 10 11 12 13 14 C C C C T T T T S S S N D G N D A N D A G N M I R K M I R K M I L C L C C T T T T S S S N D E N D A N D A G N F V Q E P W F V H Q E N D G N F A G D A G N Y D G N D A N D A G N 

3 Answers 3

2

You have a few options. Here are some

df3 = df1[[col for col in df1.columns if col not in df2.columns]] 

or

df3 = df1.drop(df2.columns, axis=1) 

However, this second method would require that all the columns of df2 exist in df1 as noted in the comments by @Chris.

Sign up to request clarification or add additional context in comments.

1 Comment

Second way would be a bit risky if df2 has columns that do not exist in df1
1

Or using pandas.DataFrame.columns.difference:

df3 = df1[df1.columns.difference(df2.columns, False)] 

Output:

 2 3 5 6 7 8 10 11 12 13 14 0 C C C C T T T T S S S 1 N D G N D A N D A G N 2 M I R K M I R K M I L 3 C L C C T T T T S S S 4 N D E N D A N D A G N 5 F V Q E P W F V H Q E 6 N D G N F A G D A G N 7 Y D G N D A N D A G N 

Comments

1

You may also try isin with columns

df3 = df1.loc[:, ~df1.columns.isin(df2.columns)] Out[215]: 2 3 5 6 7 8 10 11 12 13 14 0 C C C C T T T T S S S 1 N D G N D A N D A G N 2 M I R K M I R K M I L 3 C L C C T T T T S S S 4 N D E N D A N D A G N 5 F V Q E P W F V H Q E 6 N D G N F A G D A G N 7 Y D G N D A N D A G N 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.