一、用法精讲
211、pandas.Series.truncate方法
211-1、语法
# 211、pandas.Series.truncate方法
pandas.Series.truncate(before=None, after=None, axis=None, copy=None)
Truncate a Series or DataFrame before and after some index value.
This is a useful shorthand for boolean indexing based on index values above or below certain thresholds.
Parameters:
beforedate, str, int
Truncate all rows before this index value.
afterdate, str, int
Truncate all rows after this index value.
axis{0 or ‘index’, 1 or ‘columns’}, optional
Axis to truncate. Truncates the index (rows) by default. For Series this parameter is unused and defaults to 0.
copybool, default is True,
Return a copy of the truncated section.
Note
The copy keyword will change behavior in pandas 3.0. Copy-on-Write will be enabled by default, which means that all methods with a copy keyword will use a lazy copy mechanism to defer the copy and ignore the copy keyword. The copy keyword will be removed in a future version of pandas.
You can already get the future behavior and improvements through enabling copy on write pd.options.mode.copy_on_write = True
Returns:
type of caller
The truncated Series or DataFrame.
211-2、参数
211-2-1、before**(可选,默认值为None)**:截取的起始位置,包含此索引值。如果未指定,则从Series的第一个索引开始。
211-2-2、after**(可选,默认值为None)**:截取的结束位置,包含此索引值。如果未指定,则截取到Series的最后一个索引。
211-2-3、axis**(可选,默认值为None)**:未使用,保留参数。
211-2-4、copy**(可选,默认值为None)**:是否复制返回的数据。如果为False,则返回的Series是原始数据的视图,而不是副本。
211-3、功能
用于截取Series对象的一部分数据,通常用于在时间序列数据或带有特定索引的数据集中选取特定范围的数据。
211-4、返回值
返回一个pandas.Series对象,包含在before和after参数指定的范围内的元素。
211-5、说明
无
211-6、用法
211-6-1、数据准备
无
211-6-2、代码示例
# 211、pandas.Series.truncate方法
# 211-1、截取指定范围的数据
import pandas as pd
s = pd.Series([10, 20, 30, 40, 50, 60, 70, 80], index=[1, 2, 3, 4, 5, 6, 7, 8])
result = s.truncate(before=3, after=6)
print(result, end='\n\n')
# 211-2、截取从索引4到最后的数据
import pandas as pd
s = pd.Series([10, 20, 30, 40, 50, 60, 70, 80], index=[1, 2, 3, 4, 5, 6, 7, 8])
result = s.truncate(before=4)
print(result, end='\n\n')
# 211-3、截取从开头到索引5的数据
import pandas as pd
s = pd.Series([10, 20, 30, 40, 50, 60, 70, 80], index=[1, 2, 3, 4, 5, 6, 7, 8])
result = s.truncate(after=5)
print(result)
211-6-3、结果输出
# 211、pandas.Series.truncate方法
# 211-1、截取指定范围的数据
# 3 30
# 4 40
# 5 50
# 6 60
# dtype: int64
# 211-2、截取从索引4到最后的数据
# 4 40
# 5 50
# 6 60
# 7 70
# 8 80
# dtype: int64
# 211-3、截取从开头到索引5的数据
# 1 10
# 2 20
# 3 30
# 4 40
# 5 50
# dtype: int64
212、pandas.Series.where方法
212-1、语法
# 212、pandas.Series.where方法
pandas.Series.where(cond, other=nan, *, inplace=False, axis=None, level=None)
Replace values where the condition is False.
Parameters:
cond
bool Series/DataFrame, array-like, or callable
Where cond is True, keep the original value. Where False, replace with corresponding value from other. If cond is callable, it is computed on the Series/DataFrame and should return boolean Series/DataFrame or array. The callable must not change input Series/DataFrame (though pandas doesn’t check it).
other
scalar, Series/DataFrame, or callable
Entries where cond is False are replaced with corresponding value from other. If other is callable, it is computed on the Series/DataFrame and should return scalar or Series/DataFrame. The callable must not change input Series/DataFrame (though pandas doesn’t check it). If not specified, entries will be filled with the corresponding NULL value (np.nan for numpy dtypes, pd.NA for extension dtypes).
inplace
bool, default False
Whether to perform the operation in place on the data.
axis
int, default None
Alignment axis if needed. For Series this parameter is unused and defaults to 0.
level
int, default None
Alignment level if needed.
Returns:
Same type as caller or None if
inplace=True.
212-2、参数
212-2-1、cond**(必须)**:布尔型数组,条件表达式或Series,它用于指定要保留的元素。当条件为True时保留原值,为False时替换为other的值。
212-2-2、other**(可选,默认值为nan)**:用来替换不满足条件的元素的值,默认情况下,这些元素会被替换为NaN。
212-2-3、inplace**(可选,默认值为False)**:如果为True,则在原地修改Series对象,而不是返回修改后的副本。
212-2-4、axis**(可选,默认值为None)**:未使用,保留参数。
212-2-5、level**(可选,默认值为None)**:如果Series是多层索引的,可以指定操作的索引层次。
212-3、功能
用于基于条件对Series数据进行筛选和替换,它根据给定的布尔条件保留或替换Series中的值。
212-4、返回值
返回一个pandas.Series对象,其中原来的数据根据cond条件被筛选和替换。
212-5、说明
无
212-6、用法
212-6-1、数据准备
无
212-6-2、代码示例
# 212、pandas.Series.where方法
# 212-1、基本用法
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
result = s.where(s > 2)
print(result, end='\n\n')
# 212-2、指定替换值
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
result = s.where(s > 2, other=-1)
print(result, end='\n\n')
# 212-3、使用布尔条件
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
result = s.where(s % 2 == 0, other='odd')
print(result, end='\n\n')
# 212-4、原地修改
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
s.where(s > 2, other=-1, inplace=True)
print(s)
212-6-3、结果输出
# 212、pandas.Series.where方法
# 212-1、基本用法
# 0 NaN
# 1 NaN
# 2 3.0
# 3 4.0
# 4 5.0
# dtype: float64
# 212-2、指定替换值
# 0 -1
# 1 -1
# 2 3
# 3 4
# 4 5
# dtype: int64
# 212-3、使用布尔条件
# 0 odd
# 1 2
# 2 odd
# 3 4
# 4 odd
# dtype: object
# 212-4、原地修改
# 0 -1
# 1 -1
# 2 3
# 3 4
# 4 5
# dtype: int64
213、pandas.Series.mask方法
213-1、语法
# 213、pandas.Series.mask方法
pandas.Series.mask(cond, other=_NoDefault.no_default, *, inplace=False, axis=None, level=None)
Replace values where the condition is True.
Parameters:
cond
bool Series/DataFrame, array-like, or callable
Where cond is False, keep the original value. Where True, replace with corresponding value from other. If cond is callable, it is computed on the Series/DataFrame and should return boolean Series/DataFrame or array. The callable must not change input Series/DataFrame (though pandas doesn’t check it).
other
scalar, Series/DataFrame, or callable
Entries where cond is True are replaced with corresponding value from other. If other is callable, it is computed on the Series/DataFrame and should return scalar or Series/DataFrame. The callable must not change input Series/DataFrame (though pandas doesn’t check it). If not specified, entries will be filled with the corresponding NULL value (np.nan for numpy dtypes, pd.NA for extension dtypes).
inplace
bool, default False
Whether to perform the operation in place on the data.
axis
int, default None
Alignment axis if needed. For Series this parameter is unused and defaults to 0.
level
int, default None
Alignment level if needed.
Returns:
Same type as caller or None if
inplace=True.
213-2、参数
213-2-1、cond**(必须)**:布尔型数组,条件表达式或Series,它用于指定要替换的元素。当条件为True时替换为other的值,为False时保留原值。
213-2-2、other**(可选)**:用来替换满足条件的元素的值,默认情况下,这些元素会被替换为NaN。
213-2-3、inplace**(可选,默认值为False)**:如果为True,则在原地修改Series对象,而不是返回修改后的副本。
213-2-4、axis**(可选,默认值为None)**:未使用,保留参数。
213-2-5、level**(可选,默认值为None)**:如果Series是多层索引的,可以指定操作的索引层次。
213-3、功能
用于替换Series数据中的元素。如果满足指定的条件(cond),则将这些元素替换为other的值;否则,保留原值。
213-4、返回值
返回一个pandas.Series对象,其中原来的数据根据cond条件被筛选和替换。
213-5、说明
无
213-6、用法
213-6-1、数据准备
无
213-6-2、代码示例
# 213、pandas.Series.mask方法
# 213-1、基本用法
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
result = s.mask(s > 2)
print(result, end='\n\n')
# 213-2、指定替换值
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
result = s.mask(s > 2, other=-1)
print(result, end='\n\n')
# 213-3、使用布尔条件
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
result = s.mask(s % 2 == 0, other='even')
print(result, end='\n\n')
# 213-4、原地修改
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
s.mask(s > 2, other=-1, inplace=True)
print(s)
213-6-3、结果输出
# 213、pandas.Series.mask方法
# 213-1、基本用法
# 0 1.0
# 1 2.0
# 2 NaN
# 3 NaN
# 4 NaN
# dtype: float64
# 213-2、指定替换值
# 0 1
# 1 2
# 2 -1
# 3 -1
# 4 -1
# dtype: int64
# 213-3、使用布尔条件
# 0 1
# 1 even
# 2 3
# 3 even
# 4 5
# dtype: object
# 213-4、原地修改
# 0 1
# 1 2
# 2 -1
# 3 -1
# 4 -1
# dtype: int64
214、pandas.Series.add_prefix方法
214-1、语法
# 214、pandas.Series.add_prefix方法
pandas.Series.add_prefix(prefix, axis=None)
Prefix labels with string prefix.
For Series, the row labels are prefixed. For DataFrame, the column labels are prefixed.
Parameters:
prefixstr
The string to add before each label.
axis{0 or ‘index’, 1 or ‘columns’, None}, default None
Axis to add prefix on
New in version 2.0.0.
Returns:
Series or DataFrame
New Series or DataFrame with updated labels.
214-2、参数
214-2-1、prefix**(必须)**:字符串类型,表示要添加到索引标签前的前缀。
214-2-2、axis**(可选,默认值为None)**:虽然存在这个参数,但在Series中没有实际意义,因为Series没有轴的概念。
214-3、功能
通过为Series的索引标签添加一个指定的前缀,返回一个新的Series对象。
214-4、返回值
返回一个pandas.Series对象,其索引标签被添加了指定的前缀。
214-5、说明
无
214-6、用法
214-6-1、数据准备
无
214-6-2、代码示例
# 214、pandas.Series.add_prefix方法
import pandas as pd
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
result = s.add_prefix('item_')
print(result)
214-6-3、结果输出
# 214、pandas.Series.add_prefix方法
# item_a 1
# item_b 2
# item_c 3
# dtype: int64
215、pandas.Series.add_suffix方法
215-1、语法
# 215、pandas.Series.add_suffix方法
pandas.Series.add_suffix(suffix, axis=None)
Suffix labels with string suffix.
For Series, the row labels are suffixed. For DataFrame, the column labels are suffixed.
Parameters:
suffixstr
The string to add after each label.
axis{0 or ‘index’, 1 or ‘columns’, None}, default None
Axis to add suffix on
New in version 2.0.0.
Returns:
Series or DataFrame
New Series or DataFrame with updated labels.
215-2、参数
215-2-1、suffix**(必须)**:字符串类型,表示要添加到索引标签后的后缀。
215-2-2、axis**(可选,默认值为None)**:虽然存在这个参数,但在Series中没有实际意义,因为Series没有轴的概念。
215-3、功能
用于为Series的索引标签添加一个后缀,和add_prefix类似,axis参数在Series中没有实际意义,因为Series是一维的。
215-4、返回值
返回一个pandas.Series对象,其索引标签被添加了指定的后缀。
215-5、说明
无
215-6、用法
215-6-1、数据准备
无
215-6-2、代码示例
# 215、pandas.Series.add_suffix方法
import pandas as pd
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
result = s.add_suffix('_item')
print(result)
215-6-3、结果输出
# 215、pandas.Series.add_suffix方法
# a_item 1
# b_item 2
# c_item 3
# dtype: int64
二、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
版权归原作者 神奇夜光杯 所有, 如有侵权,请联系我们删除。