Прочитать 1-й столбец, 2-й столбец и n-й столбец до последнего столбца кадра данных panda - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть датафрейм для панд df.

В df есть 27 столбцов.

Я хочу прочитать 1-й, 2-й и 10-й до последних столбцов df.Я могу сделать это df.iloc[0,1,9,10,11,.....,26], но это слишком утомительно для ввода, если в фрейме данных много столбцов.Что является более элегантным способом чтения столбцов?

Я использую Python v3.7

Ответы [ 4 ]

3 голосов
/ 28 сентября 2019

Если вы хотите выбрать столбцы по их числовому индексу, iloc - это то, что вам нужно.Вы можете использовать np.arange, чтобы добавить диапазон столбцов (например, между 10-м и последним).

import pandas as pd  
import numpy as np

cols = [0, 1]
cols.extend(np.arange(10, df.shape[1]))
df.iloc[:,cols]

В качестве альтернативы, вы можете использовать r_ трюк для нарезки numpy:

df.iloc[:,np.r_[0:2, 10:df.shape[1]]]
1 голос
/ 28 сентября 2019

Вы можете использовать «список» и «диапазон»:

df.iloc[:,[0,1]+list(range(9,27))]

Или просто:

df.iloc[:,np.append([0,1],np.arange(9,27))]
1 голос
/ 28 сентября 2019

Если вы знаете имена столбцов, вы можете попробовать:

df = df[['col1', 'col2', 'coln']]

Если вы не знаете точных имен столбцов, вы можете попробовать это:

list_of_columns_index = [1,2,3, n]
df = df[[df.columns[i] for i in list_of_columns_index]]
0 голосов
/ 28 сентября 2019

Предположим, вы знаете имя начального столбца или имя 10-го столбца в вашем контексте.Предположим, что имя starting_column_name.

Использование имени столбца сделает код более читабельным, и вы избавите себя от необходимости подсчитывать столбцы, чтобы добраться до нужного.

num_columns = df.shape[1]  # number of columns in dataframe
starting_column = df.columns.get_loc(starting_column_name)
features = df.iloc[:, np.r_[0:2, starting_column:num_columns]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...