我想根据到数据帧的子集行的列表生成范围列表。
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?欢迎任何建议!
将zip
与list
一起用于元组列表:
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