簡體   English   中英

如何從pandas數據幀生成一個范圍列表來對行進行子集?

[英]How to generate a list of ranges to subset rows from pandas dataframe?

我想根據列表生成一個范圍列表,以從數據幀中對行進行子集。

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? 歡迎任何建議!

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

dfbig = pd.concat(dfs)

一起,將zip對象轉換為列表是沒有必要的:

dfbig = pd.concat([df.loc[s:e] for s, e in zip(start_index, end_index)])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM