Say I am given a DataFrame df1 with columns ['A', 'B', 'C'], and another list of columns labels, like cols = ['A', 'B', ..., 'Z'], among which the label may or may not also be column of df1. My goal is to build a DataFrame df with columns of cols, and if any column label in df1 also exists in cols, this column will be copied into df. My solution is like:
df = pd.DataFrame([], columns=cols)
for c in cols:
if c in df1:
df[c] = df1[c]
This works, but I am wondering if there is any more pandas-ish way to accomplish it. I don't mind the values of other columns to be NaN.
CodePudding user response:
I think you are looking for reindex:
df = df1.reindex(columns=cols)
