Подтвердить что ты не робот

Python: как получить имена столбцов из pandas dataframe - но только для непрерывного типа данных?

Я использую df.columns.values, чтобы составить список имен столбцов, которые затем перебираю и обрабатываю диаграммы и т.д.... но когда я это установил, я упустил нечетные столбцы в df. Теперь я бы предпочел не просто удалить эти столбцы из df (или его копии). Вместо этого я хотел бы найти гладкий способ устранить их из списка имен столбцов.

Теперь у меня есть:

names = df.columns.values 

то, что я хотел бы получить, это то, что ведет себя как:

names = df.columns.values(column_type=float64) 

Есть ли какой-нибудь пятнистый способ сделать это? Я полагаю, что я мог бы сделать копию df и отбросить эти нечисловые столбцы, прежде чем делать columns.values, но это наводит меня как неуклюжие.

Приветствуйте любые входы/предложения. Благодарю.

4b9b3361

Ответ 1

Кто-то даст вам лучший ответ, чем это возможно, но одна вещь, которую я имею в виду, - это если все мои числовые данные являются объектами int64 или float64, тогда вы можете создать dict типа данных столбца, а затем используйте значения для создания списка столбцов.

Так, например, в фрейме данных, где у меня есть столбцы типа float64, int64 и object, во-первых, вы можете посмотреть на типы данных так:

DF.dtypes

и если они соответствуют стандарту, согласно которому нечисловыми столбцами данных являются все типы object (как они есть в моих данных), вы можете сделать следующее, чтобы получить список числовых столбцов:

[key for key in dict(DF.dtypes) if dict(DF.dtypes)[key] in ['float64', 'int64']]

Простое простое понимание. Ничего особенного. Опять же, однако, будет ли это работать для вас, будет зависеть от того, как вы настроите свой DataFrame...

Ответ 2

dtypes - это серия Pandas. Это означает, что он содержит атрибуты индекса и значений. Если вам нужны только имена столбцов:

headers = df.dtypes.index

он вернет список, содержащий имена столбцов "df" dataframe.

Ответ 3

В функции 0.14.1, select_dtypes появилась новая функция, чтобы выбрать столбцы по dtype, предоставив список типов, которые нужно включить или исключить.

Например:

df = pd.DataFrame({'a': np.random.randn(1000),
                   'b': range(1000),
                   'c': ['a'] * 1000,
                   'd': pd.date_range('2000-1-1', periods=1000)})


df.select_dtypes(['float64','int64'])

Out[129]: 
            a    b
0    0.153070    0
1    0.887256    1
2   -1.456037    2
3   -1.147014    3
...