This tutorial will explain several ways to add new columns to an existing DataFrame in Pandas with code examples.
Table of contents
Using DataFrame.insert()
We can use the DataFrame.insert() method to insert a column at any position in the DataFrame.
import pandas as pd data = {'Name': ['electron', 'muon', 'proton', 'neutron'], 'Mass': [0.511, 105.7, 938.3, 939.6], 'Charge': [-1, -1, 1, 0]} df = pd.DataFrame(data) print(df)
Name Mass Charge 0 electron 0.511 -1 1 muon 105.700 -1 2 proton 938.300 1 3 neutron 939.600 0
df.insert(3, 'Spin', [1/2, 1/2, 1/2, 1/2], True) print(df)
Name Mass Charge Spin 0 electron 0.511 -1 0.5 1 muon 105.700 -1 0.5 2 proton 938.300 1 0.5 3 neutron 939.600 0 0.5
Using DataFrame.assign()
We can use the DataFrame.assign() method to assign one or more columns to an existing DataFrame. The assign method will create a new DataFrame with the new columns added to the existing DataFrame.
import pandas as pd data = {'Name': ['electron', 'muon', 'proton', 'neutron'], 'Mass': [0.511, 105.7, 938.3, 939.6], 'Charge': [-1, -1, 1, 0]} df = pd.DataFrame(data) print(df)
Name Mass Charge 0 electron 0.511 -1 1 muon 105.700 -1 2 proton 938.300 1 3 neutron 939.600 0
df2 = df.assign(Spin=[1/2, 1/2, 1/2, 1/2]) print(df2)
Name Mass Charge Spin 0 electron 0.511 -1 0.5 1 muon 105.700 -1 0.5 2 proton 938.300 1 0.5 3 neutron 939.600 0 0.5
Declaring New List as a Column
We can add a new list as a column to an existing DataFrame as follows:
import pandas as pd data = {'Name': ['electron', 'muon', 'proton', 'neutron'], 'Mass': [0.511, 105.7, 938.3, 939.6], 'Charge': [-1, -1, 1, 0]} df = pd.DataFrame(data) print(df) spin = [1/2, 1/2, 1/2, 1/2] df['Spin'] = spin print(df)
Name Mass Charge 0 electron 0.511 -1 1 muon 105.700 -1 2 proton 938.300 1 3 neutron 939.600 0 Name Mass Charge Spin 0 electron 0.511 -1 0.5 1 muon 105.700 -1 0.5 2 proton 938.300 1 0.5 3 neutron 939.600 0 0.5
Summary
Congratulations on reading to the end of this tutorial. The AttributeError: ‘DataFrame’ object has no attribute ‘concat’ occurs when you try to call the concat method on a DataFrame instead of using the built-in Pandas method.
For further reading on errors related Pandas, go to the articles:
- How to Solve Python AttributeError: ‘Series’ object has no attribute ‘lower’.
- How to Solve Python AttributeError: ‘DataFrame’ object has no attribute ‘unique’
To learn more about Python for data science and machine learning, go to the online courses page on Python for the most comprehensive courses available.
Have fun and happy researching!
Suf is a senior advisor in data science with deep expertise in Natural Language Processing, Complex Networks, and Anomaly Detection. Formerly a postdoctoral research fellow, he applied advanced physics techniques to tackle real-world, data-heavy industry challenges. Before that, he was a particle physicist at the ATLAS Experiment of the Large Hadron Collider. Now, he’s focused on bringing more fun and curiosity to the world of science and research online.