pandas.Series.truncate # 系列。truncate ( before = None , after = None , axis = None , copy = None ) [来源] # 在某个索引值之前和之后截断 Series 或 DataFrame。 这是基于高于或低于特定阈值的索引值的布尔索引的有用简写。 参数: 在日期、str、int之前截断该索引值之前的所有行。 在日期、str、int之后截断该索引值之后的所有行。 轴{0 或“索引”、1 或“列”},可选要截断的轴。默认情况下截断索引(行)。对于系列,此参数未使用,默认为 0。 复制bool,默认为 True,返回截断部分的副本。 笔记 copy关键字将改变 pandas 3.0 中的行为 。默认情况下会启用Copy-on-Write ,这意味着所有带有 copy关键字的方法都将使用惰性复制机制来推迟复制并忽略copy关键字。 copy关键字将在 pandas 的未来版本中删除。 您已经可以通过启用写入时复制来获得未来的行为和改进pd.options.mode.copy_on_write = True 返回: 来电者类型截断的系列或数据帧。 也可以看看 DataFrame.loc按标签选择 DataFrame 的子集。 DataFrame.iloc按位置选择 DataFrame 的子集。 笔记 如果被截断的索引仅包含日期时间值,则 before和after可以指定为字符串而不是时间戳。 例子 >>> df = pd.DataFrame({'A': ['a', 'b', 'c', 'd', 'e'], ... 'B': ['f', 'g', 'h', 'i', 'j'], ... 'C': ['k', 'l', 'm', 'n', 'o']}, ... index=[1, 2, 3, 4, 5]) >>> df A B C 1 a f k 2 b g l 3 c h m 4 d i n 5 e j o >>> df.truncate(before=2, after=4) A B C 2 b g l 3 c h m 4 d i n DataFrame 的列可以被截断。 >>> df.truncate(before="A", after="B", axis="columns") A B 1 a f 2 b g 3 c h 4 d i 5 e j 对于Series,只能截断行。 >>> df['A'].truncate(before=2, after=4) 2 b 3 c 4 d Name: A, dtype: object 中的索引值truncate可以是日期时间或字符串日期。 >>> dates = pd.date_range('2016-01-01', '2016-02-01', freq='s') >>> df = pd.DataFrame(index=dates, data={'A': 1}) >>> df.tail() A 2016-01-31 23:59:56 1 2016-01-31 23:59:57 1 2016-01-31 23:59:58 1 2016-01-31 23:59:59 1 2016-02-01 00:00:00 1 >>> df.truncate(before=pd.Timestamp('2016-01-05'), ... after=pd.Timestamp('2016-01-10')).tail() A 2016-01-09 23:59:56 1 2016-01-09 23:59:57 1 2016-01-09 23:59:58 1 2016-01-09 23:59:59 1 2016-01-10 00:00:00 1 由于索引是仅包含日期的 DatetimeIndex,因此我们可以将before和after指定为字符串。它们将在截断之前被强制为时间戳。 >>> df.truncate('2016-01-05', '2016-01-10').tail() A 2016-01-09 23:59:56 1 2016-01-09 23:59:57 1 2016-01-09 23:59:58 1 2016-01-09 23:59:59 1 2016-01-10 00:00:00 1 请注意,truncate对于任何未指定的时间部分(午夜)假定值为 0。这与部分字符串切片不同,部分字符串切片返回任何部分匹配的日期。 >>> df.loc['2016-01-05':'2016-01-10', :].tail() A 2016-01-10 23:59:55 1 2016-01-10 23:59:56 1 2016-01-10 23:59:57 1 2016-01-10 23:59:58 1 2016-01-10 23:59:59 1