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