获取 pandas DataFrame 中所有数值列的名称(按 dtype 筛选)[duplicate]

Get names of all numeric columns in a pandas DataFrame (filter by dtype) [duplicate]

提问人:mirekphd 提问时间:10/29/2023 最后编辑:mirekphd 更新时间:10/30/2023 访问量:83

问:

哪些方法可用于使用单行代码获取具有数字(所有大小,例如 ,而不仅仅是 64 位)的给定列的名称?注意:在实践中有数百列,因此应使用(或其他矢量化方法)来检测数据类型。pandasDataFramedtypesuint8dtypes

import numpy as np
import pandas as pd

test_df = pd.DataFrame(data=[{"str_col": "some string",
                              "int_col": 0,
                              "float_col": 3.1415}])

test_df.dtypes[test_df.dtypes == np.dtype('float')].index.values[0]
# "float_col"

test_df.dtypes[test_df.dtypes == np.dtype('int')].index.values[0]
# "int_col"

# ?
# ["float_col", "int_col"]
python pandas numpy dtype

评论

3赞 Aprendendo Next 10/29/2023
numeric_cols = test_df.select_dtypes(include=['number']).columns.tolist()

答:

1赞 Aprendendo Next 10/29/2023 #1

要获取数字列,请执行以下操作:

numeric_cols = test_df.select_dtypes(include=['number']).columns.tolist()

结果:

['int_col', 'float_col']