Как выбрать столбцы в кадре данных по типу - PullRequest
1 голос
/ 11 июля 2019

Предположим, у меня есть датафрейм с разными типами. Пусть будут столбцы типа float, string и int.

  A     B      C

1 car   4.3    302

2 Lena  -1.2   4

3 I     9.1    18  

Как получить столбец с типом 'float'?

без прямой ссылки на имя столбца.

Ответы [ 3 ]

2 голосов
/ 11 июля 2019

Вы можете попробовать:

df.select_dtypes(float)

или

df.loc[:, df.dtypes == float]
2 голосов
/ 11 июля 2019

Использование, select_dtypes:

df.select_dtypes(include='float')

Выход:

     B
1  4.3
2 -1.2
3  9.1
0 голосов
/ 11 июля 2019

Для этого вы можете использовать списочные выражения:

Вот примерный кадр данных:

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
"""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...