I have an empty dataframe
.
df=pd.DataFrame(columns=['a'])
for some reason I want to generate df2, another empty dataframe, with two columns 'a' and 'b'.
If I do
df.columns=df.columns+'b'
it does not work (I get the columns renamed to 'ab') and neither does the following
df.columns=df.columns.tolist()+['b']
How to add a separate column 'b' to df, and df.emtpy
keep on being True
?
Using .loc is also not possible
df.loc[:,'b']=None
as it returns
Cannot set dataframe with no defined index and a scalar
There are multiple ways to add a new empty/blank column (single or multiple columns) to a pandas DataFrame by using assign operator, assign() , insert() and apply() methods. By using these you can add one or multiple empty columns with either NaN , None , Blank or Empty string values to all cells.
To add columns using reindex() method, First, get the list of existing columns in the dataframe by using df. columns. tolist() and add the additional columns to the list. The newly added columns will have NaN values by default to denote the missing values.
Append Rows to Empty DataFramepandas. DataFrame. append() function is used to add the rows of other DataFrame to the end of the given DataFrame and return a new DataFrame object.
Here are few ways to add an empty column to an empty dataframe:
df=pd.DataFrame(columns=['a']) df['b'] = None df = df.assign(c=None) df = df.assign(d=df['a']) df['e'] = pd.Series(index=df.index) df = pd.concat([df,pd.DataFrame(columns=list('f'))]) print(df)
Output:
Empty DataFrame Columns: [a, b, c, d, e, f] Index: []
I hope it helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With