У меня есть DataFrame pandas с 4 столбцами, и я хочу создать новый DataFrame, который имеет только три столбца. Этот вопрос похож на: Извлечение определенных столбцов из фрейма данных, но для панд не R. Следующий код не работает, выдает ошибку и, безусловно, не является пандасным способом сделать это.
import pandas as pd
old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]})
new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can't be an iterator
Как это сделать?
источник
old[['A']].copy()
для создания нового фрейма данных требуются двойные квадратные скобки. Обратите внимание, чтоold['A'].copy()
будет создавать только серии.Самый простой способ
,
источник
Кажется, еще один более простой способ:
где
old.column_name
даст вам серию. Составьте список всех столбцов, которые вы хотите сохранить, и передайте его конструктору DataFrame. Нам нужно сделать транспонирование, чтобы настроить форму.источник
Универсальная функциональная форма
Специально для вашей проблемы выше
источник
Если вы хотите иметь новый фрейм данных, тогда:
источник
Насколько я могу судить, вам не обязательно указывать ось при использовании функции фильтра.
возвращает тот же кадр данных, что и
источник
столбцы по индексу:
источник