3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以通過np.number數(shù)字列表來簡(jiǎn)化您的答案dtype:
def returnCatNumList(df):
? ??
? ? object_cols = list(df.select_dtypes(exclude=np.number).columns)
? ? numeric_cols = list(df.select_dtypes(include=np.number).columns)
? ? return object_cols, numeric_cols
另一個(gè)想法是numeric_cols
使用Index.difference
:
def returnCatNumList(df):
? ??
? ? object_cols = list(df.select_dtypes(exclude=np.number).columns)
? ? numeric_cols = list(df.columns.difference(object_cols, sort=False))
? ? return object_cols, numeric_cols

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以通過簡(jiǎn)單地使用對(duì)象數(shù)據(jù)類型來做到這一點(diǎn)
def returnCatNumList(df):
object_cols = df.select_dtypes(include="object").columns.tolist()
numeric_cols = df.select_dtypes(exclude="object").columns.tolist()
return object_cols, numeric_cols

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
我們還可以使用pandas types API,它允許我們交互和操作數(shù)據(jù)類型
def returnCatNumList(df):
? ? object_cols = []
? ? numeric_cols? = []
? ? for label, content in df.items():
? ? ? ? if pd.api.types.is_string_dtype(content):
? ? ? ? ? ? numeric_cols.append(label)
? ? ? ? else:
? ? ? ? ? ? object_cols.append(label)
? ? return object_cols, numeric_cols
例子:
iris = sns.load_dataset('iris')
object_cols, numeric_cols = returnCatNumList(iris)
print(object_cols)
print(numeric_cols)
輸出:
>>> ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
>>> ['species']
添加回答
舉報(bào)