Python pandas截取DataFrame任意区间数据
·
Pandas df.iloc函数为左闭右开,截取某个位置到最后一个位置的数据必须使用df.iloc[start:],即缺省结束位置的索引值,故若截取任意区间数据的方法可分装如下:
import pandas as pd
def slice_dataframe(df: pd.DataFrame, start: int, end: int = None) -> pd.DataFrame:
"""
截取Pandas DataFrame中指定起始位置到截止位置的数据。
参数:
df (pd.DataFrame): 输入的DataFrame数据
start (int): 起始位置索引(包含)
end (int, optional): 截止位置索引(不包含)。若为None,则截取到最后一行(包含)。
返回:
pd.DataFrame: 截取后的子DataFrame
"""
if end is None:
# 如果未提供end,使用切片[start:]以包含最后一行
return df.iloc[start:]
else:
# 如果提供了end,使用标准切片[start:end],遵循左闭右开
return df.iloc[start:end]
if __name__ == "__main__":
# 创建示例数据
data = {
'A': range(10),
'B': [f'val_{i}' for i in range(10)]
}
df_example = pd.DataFrame(data)
print("原始数据:")
print(df_example)
# 测试1:截取索引2到5(不包含5)
result1 = slice_dataframe(df_example, 2, 5)
print("\n截取位置 [2:5] 的结果 (左闭右开):")
print(result1)
# 测试2:截取从索引7开始到最后(包含最后一行)
result2 = slice_dataframe(df_example, 7)
print("\n截取位置 [7:] 的结果 (包含最后一行):")
print(result2)
更多推荐


所有评论(0)