Как объединить срезы для индексирования?
Как сделать правильно, чтобы можно было отобразить первые 6 столбцов и один добавленный столбец?
Пробовал сложить 2 среза, но выдает полностью все столбцы с NaN вместо значений:
import pandas as pd
pd.options.display.expand_frame_repr = False
df = pd.read_excel(r'R:\TEST.xlsx')
df['НОВЫЙ СТОЛБЕЦ'] = ''
df = df.loc[2:]
print df.iloc[:,1:7]
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Воспользуйтесь np.r_[...] для конкатенации срезов:
iumport numpy as np
Пример DataFrame:
In [16]: df = pd.DataFrame(np.random.randint(10, size=(3, 8)))
In [17]: df['НОВЫЙ СТОЛБЕЦ'] = ''
In [18]: df
Out[18]:
0 1 2 3 4 5 6 7 НОВЫЙ СТОЛБЕЦ
0 6 4 6 8 4 3 1 8
1 7 6 2 1 8 5 1 2
2 6 4 7 4 8 9 5 9
решение:
res = df.iloc[:, np.r_[:6, df.columns.get_loc("НОВЫЙ СТОЛБЕЦ")]]
результат:
In [20]: res
Out[20]:
0 1 2 3 4 5 НОВЫЙ СТОЛБЕЦ
0 6 4 6 8 4 3
1 7 6 2 1 8 5
2 6 4 7 4 8 9