python 2.7 - Pandas append list to list of column names -
i'm looking way append list of column names existing column names in dataframe in pandas , reorder them col_start + col_add.
the dataframe contains columns col_start.
something like:
import pandas pd df = pd.read_csv(file.csv) col_start = ["col_a", "col_b", "col_c"] col_add = ["col_d", "col_e", "col_f"] df = pd.concat([df,pd.dataframe(columns = list(col_add))]) #add columns df = df[[col_start.extend(col_add)]] #rearrange columns also, there way capitalize first letter each item in col_start, analogous title() or capitalize()?
your code there, couple things:
df = pd.concat([df,pd.dataframe(columns = list(col_add))]) can simplified col_add list:
df = pd.concat([df,pd.dataframe(columns = col_add)]) also can add 2 lists so:
df = df[[col_start.extend(col_add)]] becomes
df = df[col_start+col_add] and capitalise first letter in list do:
in [184]: col_start = ["col_a", "col_b", "col_c"] col_start = [x.title() x in col_start] col_start out[184]: ['col_a', 'col_b', 'col_c'] edit
to avoid keyerror on capitalised column names, need capitalise after calling concat, columns have vectorised str title method:
in [187]: df = pd.dataframe(columns = col_start + col_add) df out[187]: empty dataframe columns: [col_a, col_b, col_c, col_d, col_e, col_f] index: [] in [188]: df.columns = df.columns.str.title() df.columns out[188]: index(['col_a', 'col_b', 'col_c', 'col_d', 'col_e', 'col_f'], dtype='object')
Comments
Post a Comment