use*_*hrn 9 python indexing dataframe pandas
我有这个数据框,我想在特定列之前和之后选择 10 行。我已经达到了这一点,但我想知道如何在 lambda python 表达式中使它更优雅,因为我需要在循环中运行 10000 次。
import pandas as pd
df = pd.DataFrame(data=np.random.rand(90),
index=pd.date_range('2015-01-01','2015-03-31'),columns=['A'])
Run Code Online (Sandbox Code Playgroud)
我已将此作为正在进行的解决方案:
前后 10 次观察:
df.loc['2015-01-17':].head(11)[1:11].transpose() ! before
df.loc[:'2015-01-17'].tail(11)[0:10].transpose() ! after
Run Code Online (Sandbox Code Playgroud)
那么,我怎样才能让它在一个带有 lambda 表达式的循环中并且不仅有一个index而且有两个indexes?
cs9*_*s95 12
使用真的很简单index.get_loc。获取标签的索引,并相应地切片。
idx = df.index.get_loc('2015-01-17')
df.iloc[idx - 10 : idx + 10]
A
2015-01-07 0.262086
2015-01-08 0.836742
2015-01-09 0.094763
2015-01-10 0.133500
2015-01-11 0.285372
2015-01-12 0.338112
2015-01-13 0.451852
2015-01-14 0.163001
2015-01-15 0.247186
2015-01-16 0.227053
2015-01-17 0.837647
2015-01-18 0.918334
2015-01-19 0.514731
2015-01-20 0.207688
2015-01-21 0.700314
2015-01-22 0.363784
2015-01-23 0.811346
2015-01-24 0.079030
2015-01-25 0.051900
2015-01-26 0.520310
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5484 次 |
| 最近记录: |