gpt4 book ai didi

python - 如何在 Pandas 数据框中获取数字列名

转载 作者:太空狗 更新时间:2023-10-30 00:47:18 25 4
gpt4 key购买 nike

我有 pandas 数据框,它有 object,int64,float64 数据类型。我想获取 int64 和 float64 列的列名。我在 Pandas 中使用以下命令,但它似乎不起作用

cat_num_prv_app = [num for num in list(df.columns) if isinstance(num, (np.int64,np.float64))]

以下是我的数据类型

 df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1670214 entries, 0 to 1670213
Data columns (total 37 columns):
ID 1670214 non-null int64
NAME 1670214 non-null object
ANNUITY 1297979 non-null float64
AMOUNT 1670214 non-null float64
CREDIT 1670213 non-null float64

我想将列名 ID、ANNUITY、AMOUNT 和 CREDIT 存储在一个变量中,稍后我可以使用它来对数据框进行子集化。

最佳答案

使用select_dtypes使用 np.number 选择所有数字列:

df = pd.DataFrame({'A':list('abcdef'),
'B':[4.5,5,4,5,5,4],
'C':[7.4,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':list('aaabbb')})

print (df)
A B C D E
0 a 4.5 7.4 1 a
1 b 5.0 8.0 3 a
2 c 4.0 9.0 5 a
3 d 5.0 4.0 7 b
4 e 5.0 2.0 1 b
5 f 4.0 3.0 0 b

print (df.dtypes)
A object
B float64
C float64
D int64
E object
dtype: object

cols = df.select_dtypes([np.number]).columns
print (cols)
Index(['B', 'C', 'D'], dtype='object')

这里可以指定float64int64:

df = pd.DataFrame({'A':list('abcdef'),
'B':[4.5,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':list('aaabbb')})

df['D'] = df['D'].astype(np.int32)
print (df.dtypes)
A object
B float64
C int64
D int32
E object
dtype: object

cols = df.select_dtypes([np.int64,np.float64]).columns
print (cols)
Index(['B', 'C'], dtype='object')

关于python - 如何在 Pandas 数据框中获取数字列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51684585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com