Выбор нескольких колонок в DataFrame Pandas
Как выбрать столбцы a
и b
из df
и сохранить их в новом датафрейме df1
? У меня есть следующий датафрейм:
index a b c
1 2 3 4
2 3 4 5
Я делал несколько попыток, но они оказались неудачными:
df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']
Как правильно извлечь столбцы a
и b
и сохранить их в df1
?
5 ответ(ов)
В последней версии Pandas существует простой способ сделать именно это. Названия столбцов (которые являются строками) можно обрезать любым удобным для вас способом.
columns = ['b', 'c']
df1 = pd.DataFrame(df, columns=columns)
Таким образом, вы можете выбирать нужные столбцы, указав их имена в списке.
Чтобы создать новый DataFrame в pandas, содержащий только определенные столбцы из исходного DataFrame, вы можете использовать следующий код. Допустим, у вас есть DataFrame df
, который выглядит следующим образом:
import pandas as pd
data = {
'index': [1, 2],
'a': [2, 3],
'b': [3, 4],
'c': [4, 5]
}
df = pd.DataFrame(data)
Вывод будет следующим:
index a b c
0 1 2 3 4
1 2 3 4 5
Чтобы выбрать только столбцы 'b' и 'c', вы можете создать новый DataFrame df1
, как показано ниже:
df1 = df[['b', 'c']]
После выполнения этого кода, df1
будет выглядеть так:
b c
0 3 4
1 4 5
Таким образом, вы сможете отобразить только интересующие вас столбцы из исходного DataFrame.
Чтобы выбрать столбцы в DataFrame с помощью Pandas, вы можете использовать несколько методов в зависимости от ваших потребностей.
Если вы хотите выбрать столбцы по именам, вы можете сделать это следующим образом:
dataframe[['column1', 'column2']]
Если вам нужно выбрать столбцы по их индексам с использованием iloc
, вы можете сделать это так:
dataframe.iloc[:, [1, 2]]
Кроме того, вы можете использовать loc
, чтобы выбрать столбцы по их именам:
dataframe.loc[:, ['column1', 'column2']]
Таким образом, вы можете выбирать столбцы из DataFrame как по именам, так и по индексам, в зависимости от ваших требований.
Вы можете использовать метод pandas.DataFrame.filter
, чтобы отфильтровать или переупорядочить столбцы следующим образом:
df1 = df.filter(['a', 'b'])
Это также очень полезно, когда вы используете цепочку методов.
Вы можете использовать библиотеку Pandas.
Сначала создайте DataFrame:
import pandas as pd
df = pd.DataFrame([[1, 2, 5], [5, 4, 5], [7, 7, 8], [7, 6, 9]],
index=['Jane', 'Peter', 'Alex', 'Ann'],
columns=['Test_1', 'Test_2', 'Test_3'])
Полученный DataFrame будет выглядеть так:
Test_1 Test_2 Test_3
Jane 1 2 5
Peter 5 4 5
Alex 7 7 8
Ann 7 6 9
Чтобы выбрать один или несколько столбцов по их именам, вы можете сделать следующее:
df[['Test_1', 'Test_3']]
Вы получите:
Test_1 Test_3
Jane 1 5
Peter 5 5
Alex 7 8
Ann 7 9
Также вы можете использовать:
df.Test_2
И получите столбец Test_2
:
Jane 2
Peter 4
Alex 7
Ann 6
Вы также можете выбирать столбцы и строки из этих строк, используя .loc()
. Это называется "срез". Обратите внимание, что я беру от столбца Test_1
до Test_3
:
df.loc[:, 'Test_1':'Test_3']
Результат будет:
Test_1 Test_2 Test_3
Jane 1 2 5
Peter 5 4 5
Alex 7 7 8
Ann 7 6 9
Если вы хотите выбрать только Peter
и Ann
из столбцов Test_1
и Test_3
, вы можете использовать:
df.loc[['Peter', 'Ann'], ['Test_1', 'Test_3']]
Результат будет:
Test_1 Test_3
Peter 5 5
Ann 7 9
Как изменить порядок столбцов в DataFrame?
Как удалить строки DataFrame в Pandas с NaN в определённом столбце
Изменение типа столбца в pandas
Преобразование списка словарей в DataFrame pandas
Получить статистику для каждой группы (например, количество, среднее и т.д.) с помощью pandas GroupBy?