1.cumsum()
cumsum()
函数是 pandas 库中 DataFrame 和 Series 对象的方法之一。它用于计算累积和(cumulative sum),即给定一列数据,返回一个新的列,其中每个元素是原始列对应位置以及之前所有位置的元素的和。
下面是 cumsum()
函数的简单示例:
import pandas as pd
# 创建一个示例Series对象
s = pd.Series([1, 2, 3, 4, 5])
# 计算累积和
cumulative_sum = s.cumsum()
print(cumulative_sum)
输出:
0 1
1 3
2 6
3 10
4 15
dtype: int64
在这个示例中,原始的 Series 是 [1, 2, 3, 4, 5]
,使用 cumsum()
方法计算得到的累积和的 Series 是 [1, 3, 6, 10, 15]
。第一个元素是原始 Series 的第一个元素,第二个元素是原始 Series 的前两个元素的和,依此类推。
这个函数在数据分析和时间序列数据处理中非常有用,可以用来计算累积的总和,例如计算时间序列中的累积收益、累积成本等。
2.cummax()
cummax()
是 pandas 库中 DataFrame 和 Series 对象的方法之一。它用于计算累积最大值(cumulative maximum),即给定一列数据,返回一个新的列,其中每个元素是原始列对应位置以及之前所有位置的元素中的最大值。
下面是 cummax()
函数的简单示例:
import pandas as pd
# 创建一个示例Series对象
s = pd.Series([3, 1, 7, 2, 5])
# 计算累积最大值
cumulative_max = s.cummax()
print(cumulative_max)
输出:
0 3
1 3
2 7
3 7
4 7
dtype: int64
在这个示例中,原始的 Series 是 [3, 1, 7, 2, 5]
,使用 cummax()
方法计算得到的累积最大值的 Series 是 [3, 3, 7, 7, 7]
。第一个元素是原始 Series 的第一个元素,第二个元素是原始 Series 的前两个元素中的最大值,依此类推。
这个函数在数据分析和时间序列数据处理中也非常有用,可以用来查找在每个时间点之前的最大值,比如查找时间序列中的历史最高价。
3.drop_duplicates()
drop_duplicates()
是 pandas 库中 DataFrame 和 Series 对象的方法之一。它用于删除重复的行。
下面是 drop_duplicates()
函数的简单示例:
import pandas as pd
# 创建一个示例DataFrame对象
data = {'A': [1, 1, 2, 2, 3],
'B': ['a', 'a', 'b', 'b', 'c']}
df = pd.DataFrame(data)
# 删除重复的行
df_no_duplicates = df.drop_duplicates()
print(df_no_duplicates)
输出:
A B
0 1 a
2 2 b
4 3 c
在这个示例中,原始的 DataFrame 包含了两列,其中列 'A' 有重复的元素。使用 drop_duplicates()
方法后,返回的 DataFrame 中只保留了原始 DataFrame 中的第一个出现的重复行,其他重复行都被删除了。
drop_duplicates()
方法有一些参数可以用来控制删除重复行的方式,比如保留最后一次出现的重复行、只考虑某些列等。详细信息可以查阅 pandas 文档。
4.value_counts()
value_counts()
是 pandas 库中 Series 对象的方法之一,用于计算 Series 中每个唯一值的出现次数。它的语法格式如下:
Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
其中,各参数的含义如下:
-
normalize
(默认为 False):如果设置为 True,则返回的值将显示相对频率(即每个唯一值的出现次数除以总数量)。设置为 False 时,返回的值是每个唯一值的绝对频率。 -
sort
(默认为 True):如果设置为 True,则按照唯一值的频率排序输出。设置为 False 时,输出结果的顺序将保留原始数据中唯一值的顺序。 -
ascending
(默认为 False):用于控制输出结果的升序或降序排列。当sort
参数为 True 时才有效。如果设置为 True,则结果将按升序排列,即出现次数最少的值排在前面;如果设置为 False,则结果将按降序排列,即出现次数最多的值排在前面。 -
bins
(默认为 None):仅在 Series 中的数据类型为数值型(如整数或浮点数)时有效。用于指定连续数值型数据的分组区间,返回每个分组的频率计数。 -
dropna
(默认为 True):如果设置为 True,则会排除 Series 中的缺失值(NaN),并且不会将缺失值视为独立的类别进行计数;如果设置为 False,则会将缺失值作为一个独立的类别进行计数。
5.pivot_table()
pivot_table()
是 pandas 库中 DataFrame 对象的方法之一。它用于创建透视表,可以根据一个或多个键对数据进行聚合,并根据行和列中的分组键重新排列数据。透视表的功能类似于 Excel 中的透视表,可以对数据进行多维度的汇总和分析。
pivot_table()
方法的基本语法如下:
DataFrame.pivot_table(values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False)
其中,各参数的含义如下:
-
values
:用于聚合的列名或列名的列表。如果未指定,则默认使用所有数值列。 -
index
:用于分组的列名或列名的列表,数据将根据这些列的值进行分组,并作为透视表的行索引。 -
columns
:用于分组的列名或列名的列表,数据将根据这些列的值进行分组,并作为透视表的列索引。 -
aggfunc
:用于聚合的函数或函数列表,默认为 'mean'。可以是任何有效的聚合函数,如 'sum'、'count'、'median' 等,也可以是用户自定义的函数。 -
fill_value
:用于替换缺失值的值。 -
margins
:布尔值,表示是否在结果中包含行和列的汇总信息。 -
dropna
:布尔值,表示在聚合计算时是否忽略缺失值。 -
margins_name
:汇总信息行和列的名称。 -
observed
:布尔值,表示是否观察到所有的分类值,如果设置为 True,则只会显示观察到的值。