У меня есть датафрейм с> 100 столбцами. Я пытаюсь выбрать столбцы 0 ~ 32 и # 83. Кажется, что 1 фрагмент работает нормально с кодом ниже.
df_new = df[df.columns[0:32]]
Это не работает с кодом из 2 частей ниже. Как мне решить проблему?
df_new = df[df.columns[0:32, 83]]
np.r_ отличный ответ. Другой подход состоит в том, чтобы построить его со списком и диапазоном.
np.r_
Рассмотрим этот пример:
import pandas as pd df = pd.DataFrame([range(10)],range(10)) cols = list(range(0,5))+[8] # 0,1,2,3,4,8 df.iloc[:,cols]
Меня тоже интересует эта проблема. Мы можем выбрать несколько отдельных строк или столбцов. Но, похоже, нарезка может быть выполнена только один раз на каждой оси. Как и следующий.
new_df=df.iloc[[2,3,4],[3:4]]
Может быть, мы можем сначала нарезать, а затем соединить их вместе.
df1=df.iloc[[2:4],:] df2=df.iloc[[8:10],:] new_df=pd.concat([df1,df2],axis=0)
Используйте индексатор np.r_ вместе с iloc, например:
iloc
df.iloc[:, np.r_[0:32, 83]]
np.r_[0:32, 83] array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 83])