I've got a pandas dataframe and I'm trying to drop all the object fields from so that I'm left with only numeric.
I've been trying to write a for loop to do this task, as I'm likely going to need to do it over and over again with different data.
For some reason I can't get it working. Below is what I've did so far
for cols in data:
if data.values.type == object:
numdata = data.drop(axis=1, inplace=True)
The error I get is:
AttributeError Traceback (most recent call last) in () 1 for cols in data: ----> 2 if data.values.type == object: 3 numdata = data.drop(axis=1, inplace=True)
AttributeError: 'numpy.ndarray' object has no attribute 'type'
I am a newb and for some reason I can't get the for loop and if statement logic to stick in my head.
Pandas Select columns based on their data typePandas dataframe has the function select_dtypes , which has an include parameter. Specify the datatype of the columns which you want select using this parameter. This can be useful to you if you want to select only specific data type columns from the dataframe.
Pandas Drop Multiple Columns By Index You can use df. columns[[index1, index2, indexn]] to identify the list of column names in that index position and pass that list to the drop method. Note that an index is 0 based. Use 0 to delete the first column and 1 to delete the second column and so on.
Using the del command to drop coloumn To drop a single column in a pandas dataframe, you can use the del command which is inbuilt in python.
Deleting rows and columns (drop) To delete rows and columns from DataFrames, Pandas uses the “drop” function. To delete a column, or multiple columns, use the name of the column(s), and specify the “axis” as 1.
You can use select_dtypes
to exclude columns of a particular type.
import pandas as pd
df = pd.DataFrame({'x': ['a', 'b', 'c'], 'y': [1, 2, 3], 'z': ['d', 'e', 'f']})
df = df.select_dtypes(exclude=['object'])
print(df)
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