如何从熊猫数据帧生成子集行的范围列表?

问题描述 投票:2回答:1

我想根据到数据帧的子集行的列表生成范围列表

import numpy as np
import pandas as pd

start_index = [10,20,30]
end_index = [15,25,35]

range_list = [10:15, 20:25, 30:35]

# assume df is a dataframe with 50 rows
df = df.loc[np.r_range_list,:]

如何从start_index和end_index生成range_list?欢迎任何建议!

python pandas dataframe
1个回答
8
投票

ziplist一起用于元组列表:

range_list = list(zip(start_index, end_index))
print (range_list)
[(10, 15), (20, 25), (30, 35)]

然后使用列表推导进行过滤:

dfs = [df.loc[s:e] for s, e in range_list]

如果要一个大的DataFrame,请添加concat

concat

同时在一起,不需要将dfbig = pd.concat(dfs) 对象转换为列表:

zip
© www.soinside.com 2019 - 2024. All rights reserved.