我正在做一个需要清理数据的项目。我想清除包含字符串的列。
我打算定义一个函数,然后使用它。我写了这个函数,但它不起作用
功能如下:-
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)
尝试select_dtypes
并排除"对象":
filtered_df = df.select_dtypes(exclude='object')
或者只选择包含"数字"的数字列:
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 v2 v3 v4
0 0 dog cat 10
1 1 dog cat 11
2 2 dog cat 12
3 3 dog cat 13
4 4 dog cat 14
5 5 dog cat 15
6 6 dog cat 16
7 7 dog cat 17
8 8 dog cat 18
9 9 dog cat 19
filtered_df
:
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