通过更多索引范围(例如10:12
和25:28
)对数据帧进行切片的pythonic方法是什么?
我希望以更优雅的方式:
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)]
谢谢!
答案 0 :(得分:35)
您可以使用numpy的r_
“切片技巧”:
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
答案 1 :(得分:1)
你可以利用pandas isin功能。
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