Pandas add an empty row or column to a dataframe with index

Add empty row with or without name:

df.append(pd.Series(name='NameOfNewRow')) # name the new row
df.append(pd.Series(), ignore_index=True) # not name the new row

Add empty column:

df['new'] = pd.Series()

Source:
https://stackoverflow.com/questions/39998262/append-an-empty-row-in-dataframe-using-pandas
https://stackoverflow.com/questions/16327055/how-to-add-an-empty-column-to-a-dataframe

Pandas remove rows or columns with null/nan/missing values

Remove rows with nan/null/missing values:

df = df.dropna(axis=0, how='any') # Remove if any value is na
df = df.dropna(axis=0, how='all') # Remove if all values are na

Remove columns with nan/null/missing values:

df = df.dropna(axis=1, how='any') # Remove if any value is na
df = df.dropna(axis=1, how='all') # Remove if all values are na

Defaut remove is inplace=False, if you want to remove inplace, add inplace=True

Source:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html

Pandas apply function to values in a DataFrame

Apply your function to all values in a dataframe:

df = df+1
df = df.apply(np.sqrt)
df = df.apply(lambda x: np.log2(x+1))
df = df.apply(lambda x: function(x))

Apply function to a column or a row of the dataframe:

df.loc[:,'yourLabel'] = df.loc[:,'yourLabel'].map(lambda x: function(x))
df.loc['yourLabel',:] = df.loc['yourLabel',:].map(lambda x: function(x))

df.loc[:,'yourLabel'] = df.loc[:,'yourLabel'].apply(lambda x: function(x))
df.loc['yourLabel',:] = df.loc['yourLabel',:].apply(lambda x: function(x))

Source:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html;
https://stackoverflow.com/questions/34962104/pandas-how-can-i-use-the-apply-function-for-a-single-column