Python 如何删除每个数据类型为string的列?

Python 如何删除每个数据类型为string的列?,python,pandas,Python,Pandas,我正在做一个项目,需要数据清理。我想清除包含字符串的列 我计划做的是定义一个函数,然后使用它。我写了这个函数,但它不起作用 下面是函数:- def removeStringColumns(df): for i in (df.columns): if type(df[i][0]) == "str": df = df.drop(df[i], axis=1) return df 我这样称呼它 data = pd.read_c

我正在做一个项目,需要数据清理。我想清除包含字符串的列

我计划做的是定义一个函数,然后使用它。我写了这个函数,但它不起作用
下面是函数:-

def removeStringColumns(df):
    for i in (df.columns):
        if type(df[i][0]) == "str":
            df = df.drop(df[i], axis=1)
    return df
我这样称呼它

data = pd.read_csv("./data.csv")
data.dropna()
data = data.replace(np.nan, 0)
data = removeStringColumns(data)
尝试排除“对象”:

filtered_df = df.select_dtypes(exclude='object')
或仅选择包含“number”的数字列:

filtered_df = df.select_dtypes(include='number')

示例
df

import numpy as np
import pandas as pd

df = pd.DataFrame({'v1': np.arange(0, 10),
                   'v2': ['dog'] * 10,
                   'v3': ['cat'] * 10,
                   'v4': np.arange(10, 20)})
   v1  v4
0   0  10
1   1  11
2   2  12
3   3  13
4   4  14
5   5  15
6   6  16
7   7  17
8   8  18
9   9  19
filtered\u df

import numpy as np
import pandas as pd

df = pd.DataFrame({'v1': np.arange(0, 10),
                   'v2': ['dog'] * 10,
                   'v3': ['cat'] * 10,
                   'v4': np.arange(10, 20)})
   v1  v4
0   0  10
1   1  11
2   2  12
3   3  13
4   4  14
5   5  15
6   6  16
7   7  17
8   8  18
9   9  19