Ответ 1
Вы можете использовать numpy r_
"slice trick":
df = pd.DataFrame({'a':range(10,100)})
df.iloc[pd.np.r_[10:12, 25:28]]
дает:
a
10 20
11 21
25 35
26 36
27 37
Что такое pythonic способ срезать фрейм данных с помощью большего числа диапазонов индексов (например, 10:12
и 25:28
)?
Я хочу это более элегантно:
df = pd.DataFrame({'a':range(10,100)})
df.iloc[[i for i in range(10,12)] + [i for i in range(25,28)]]
Результат:
a
10 20
11 21
25 35
26 36
27 37
Что-то вроде этого было бы более элегантным:
df.iloc[(10:12, 25:28)]
Спасибо!
Вы можете использовать numpy r_
"slice trick":
df = pd.DataFrame({'a':range(10,100)})
df.iloc[pd.np.r_[10:12, 25:28]]
дает:
a
10 20
11 21
25 35
26 36
27 37
Вы можете использовать функцию isin pandas.
df = pd.DataFrame({'a':range(10,100)})
ls = [i for i in range(10,12)] + [i for i in range(25,28)]
df[df.index.isin(ls)]
a
10 20
11 21
25 35
26 36
27 37