如何按类型选择数据框中的列

时间:2019-07-11 20:40:23

标签: python pandas

假设我有一个不同类型的数据框。让float,string和int为列。

  A     B      C

1 car   4.3    302

2 Lena  -1.2   4

3 I     9.1    18  

如何获取类型为“ float”的列?

而没有直接引用列名。

3 个答案:

答案 0 :(得分:2)

使用select_dtypes

df.select_dtypes(include='float')

输出:

     B
1  4.3
2 -1.2
3  9.1

答案 1 :(得分:2)

您可以尝试:

df.select_dtypes(float)

df.loc[:, df.dtypes == float]

答案 2 :(得分:0)

您可以为此使用列表推导:

这是一个示例数据框:

import pandas as pd

df = pd.DataFrame({'one' : pd.Series([10, 0, 10, 9], index=['a', 'b', 'c', 'd']), //
  'two' : pd.Series([0, 0, 10., 4.6], index=['a', 'b', 'c', 'd']), //
  'three' : pd.Series(['aaa', 'abc', 'def', 'fff'], index=['a', 'b', 'c', 'd'])})

print(df)
"""
   one   two  three
a   10   0.0      5
b    0   0.0     -1
c   10  10.0      7
d    9   4.6     -1
"""

我的列类型是什么?

for col in df.columns:
        print('col : ',col, ' , datatype: ',df[col].dtype)
"""
col:  one  , datatype:  int64
col:  two  , datatype:  float64
col:  three  , datatype:  object
"""

返回类型为“ float”的列

print(df[[col for col in df.columns if df[col].dtype == 'float']])
"""
    two
a   0.0
b   0.0
c  10.0
d   4.6
"""

返回多种列类型(float和int64)

print(df[[col for col in df.columns if df[col].dtype in ['float','int64']]])

"""
   one   two
a   10   0.0
b    0   0.0
c   10  10.0
d    9   4.6
"""