Attempting to drop a column from a DataFrame
in Pandas. DataFrame
created from a text file.
import pandas as pd
df = pd.read_csv('sample.txt')
df.drop(['a'], 1, inplace=True)
However, this generates the following error:
ValueError: labels ['a'] not contained in axis
Here is a copy of the sample.txt
file :
a,b,c,d,e
1,2,3,4,5
2,3,4,5,6
3,4,5,6,7
4,5,6,7,8
Thanks in advance.
Kenil Vasani
So the issue is that your “sample.txt” file doesn’t actually include the data you are trying to remove.
Your line
is attepmting to take your DataFrame (which includes the data from your sample file), find the column where the value is ‘id’ in the first row (axis 1) and do an inplace replace (modify the existing object rather than create a new object missing that column, this will return None and just modify the existing object.).
The issue is that your sample data doesn’t include a column with a header equal to ‘id’.
In your current sample file, you can only to a drop where the value in axis 1 is ‘a’, ‘b’, ‘c’, ‘d’, or ‘e’. Either correct your code to drop one of those values or get a sample files with the correct header.
The documentation for Pandas isn’t fantastic, but here is a good example of how to do a column drop in Pandas: http://chrisalbon.com/python/pandas_dropping_column_and_rows.html
** Below added in response to Answer Comment from @saar
Here is my example code:
Sample.txt:
Sample Code:
Output: