广州网站建设知名乐云seo,wordpress显示用户自定义菜单,网站建设请示文件,苏州网络平台公司目录 一、函数应用和映射1、apply2、map 二、汇总和描述统计1、计算平均值2、计算中位数3、计算总和4、找到最小值5、找到最大值6、计算标准差7、计算方差8、计算非空值的数量9、生成摘要统计信息10、计算唯一值的频率 三、str 属性1、str.len()2、str.lower() 和 str.upper()3… 目录 一、函数应用和映射1、apply2、map 二、汇总和描述统计1、计算平均值2、计算中位数3、计算总和4、找到最小值5、找到最大值6、计算标准差7、计算方差8、计算非空值的数量9、生成摘要统计信息10、计算唯一值的频率 三、str 属性1、str.len()2、str.lower() 和 str.upper()3、str.replace()4、str.strip()、str.lstrip() 和 str.rstrip()5、str.split()6、str.startswith() 和 str.endswith()7、str.count() 四、分组聚合五、透视表 一、函数应用和映射
1、apply
pandas.apply() 是 Pandas 库中的一个函数用于在 DataFrame 或 Series 上应用自定义函数。这个函数可以沿着指定的轴行或列逐行或逐列地应用函数从而实现对数据的定制化操作。
参数 func必需这是要应用的函数可以是一个 Python 函数、lambda 函数或可调用对象。这个函数将应用于 Series 或 DataFrame 的每个元素或行/列具体取决于 axis 参数的设置。 axis可选指定函数应用的轴方向。有两个选项 axis0默认值将函数应用于每一列即按列方向操作。 axis1将函数应用于每一行即按行方向操作。 raw可选一个布尔值用于控制是否将数据以 NumPy 数组的形式传递给函数。有两个选项 rawFalse默认值表示将数据以 Series 或 DataFrame 的形式传递给函数。rawTrue表示数据以 NumPy 数组形式传递给函数这在某些情况下可能提高性能。 result_type可选指定函数的返回类型。有两个选项 expand默认值如果函数返回的是 Series则将其扩展为 DataFrame。reduce如果函数返回的是标量如一个数字则返回一个标量如果返回的是 Series则返回一个 Series。 args可选一个元组包含传递给函数的额外参数。这可以用来向函数传递额外的参数。 **kwds可选关键字参数用于传递给函数的额外关键字参数。
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
print(原df\n, df)
# 原df
# A B
# 0 1 10
# 1 2 20
# 2 3 30
# 3 4 40
# 4 5 50# 使用 lambda 函数将每个元素加倍
df[A2] df[A].apply(lambda x: x * 2)
print(A列2倍处理后的df\n, df)
# A列2倍处理后的df
# A B A2
# 0 1 10 2
# 1 2 20 4
# 2 3 30 6
# 3 4 40 8
# 4 5 50 10# 增加新列 Row_Sum值为A列和B列对应位置相加的结果
def row_sum(row):return row[A] row[B]
df[Row_Sum] df.apply(row_sum, axis1)
print(增加AB两列和后的df\n, df)
# 增加AB两列和后的df
# A B A2 Row_Sum
# 0 1 10 2 11
# 1 2 20 4 22
# 2 3 30 6 33
# 3 4 40 8 44
# 4 5 50 10 552、map
pandas.map() 是 Pandas 库中的一个方法主要用于对 Series 中的每个元素应用一个函数或一个字典将每个元素映射到另一个值上。它可以用于进行元素级的转换从而创建新的 Series。
参数
arg必需这是映射函数、字典或其它可映射对象用于将 Series 中的元素映射到新的值。可以是以下几种类型 一个函数将应用于 Series 中的每个元素函数的返回值将作为新的值。一个字典将 Series 中的值与字典中的键进行匹配并将对应的值用作新的值。一个 Series 或其它可映射的 Pandas 对象将 Series 中的值与可映射对象中的索引或标签匹配并将对应的值用作新的值。 na_action (可选)指定对于 Series 中的缺失值如何处理。有两个选项 ignore默认值忽略缺失值不进行映射将缺失值保留不变。raise如果 Series 中存在缺失值则引发异常。
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 Series
data {A: [apple, banana, cherry, date]}
s pd.Series(data[A])
# 使用字典映射元素到新的值
dict1 {apple: fruit, banana: fruit, cherry: fruit}
s_mapped s.map(dict1)
print(s_mapped)
# 0 fruit
# 1 fruit
# 2 fruit
# 3 NaN
# dtype: object# 使用函数映射元素到新的值
def func(x):if x in [apple, banana, cherry]:return fruitelse:return others_mapped2 s.map(func)
print(s_mapped2)
# 0 fruit
# 1 fruit
# 2 fruit
# 3 other
# dtype: object二、汇总和描述统计
1、计算平均值
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 计算平均值
mean_A df[A].mean()
mean_B df[B].mean()
print(fA列平均值: {mean_A}) # A列平均值: 3.0
print(fB列平均值: {mean_B}) # B列平均值: 30.02、计算中位数
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 计算中位数
median_A df[A].median()
median_B df[B].median()
print(fA列中位数: {median_A}) # A列中位数: 3.0
print(fB列中位数: {median_B}) # B列中位数: 30.03、计算总和
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 计算总和
sum_A df[A].sum()
sum_B df[B].sum()
print(fA列求和: {sum_A}) # A列求和: 15
print(fB列求和: {sum_B}) # B列求和: 1504、找到最小值
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 找到最小值
min_A df[A].min()
min_B df[B].min()
print(fA列最小值: {min_A}) # A列最小值: 1
print(fB列最小值: {min_B}) # B列最小值: 105、找到最大值
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 找到最大值
max_A df[A].max()
max_B df[B].max()
print(fA列最大值: {max_A}) # A列最大值: 5
print(fB列最大值: {max_B}) # B列最大值: 506、计算标准差
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 计算标准差
std_A df[A].std()
std_B df[B].std()
print(fA列标准差: {std_A}) # 标准差A: 1.5811388300841898
print(fB列标准差: {std_B}) # 标准差B: 15.8113883008418967、计算方差
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 计算方差
var_A df[A].var()
var_B df[B].var()
print(fA列方差: {var_A}) # A列方差: 2.5
print(fB列方差: {var_B}) # B列方差: 250.08、计算非空值的数量
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 计算非空值的数量
count_A df[A].count()
count_B df[B].count()
print(fA列非空值数量: {count_A}) # A列非空值数量: 5
print(fB列非空值数量: {count_B}) # B列非空值数量: 59、生成摘要统计信息
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 生成摘要统计信息
summary_A df[A].describe()
summary_B df[B].describe()
print(fA列概览:\n{summary_A})
# A列概览:
# count 5.000000
# mean 3.000000
# std 1.581139
# min 1.000000
# 25% 2.000000
# 50% 3.000000
# 75% 4.000000
# max 5.000000
# Name: A, dtype: float64
print(fB列概览:\n{summary_B})
# B列概览:
# count 5.000000
# mean 30.000000
# std 15.811388
# min 10.000000
# 25% 20.000000
# 50% 30.000000
# 75% 40.000000
# max 50.000000
# Name: B, dtype: float6410、计算唯一值的频率
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]}
df pd.DataFrame(data)
# 计算唯一值的频率
value_counts_A df[A].value_counts()
value_counts_B df[B].value_counts()
print(fA列各值计数:\n{value_counts_A})
# A列各值计数:
# A
# 1 1
# 2 1
# 3 1
# 4 1
# 5 1
# Name: count, dtype: int64
print(fB列各值计数:\n{value_counts_B})
# B列各值计数:
# B
# 10 1
# 20 1
# 30 1
# 40 1
# 50 1
# Name: count, dtype: int64三、str 属性
作用是对元素级的数据单元格数据进行处理能处理的是字符串。
1、str.len()
计算每个字符串的长度
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {name: [Alice, Bob, Charlie]}
df pd.DataFrame(data)
df[name_length] df[name].str.len()
print(df)
# name name_length
# 0 Alice 5
# 1 Bob 3
# 2 Charlie 72、str.lower() 和 str.upper()
str.lower()将字符串转换为小写
str.upper()将字符串转换为大写
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {name: [Alice, Bob, Charlie]}
df pd.DataFrame(data)
df[name_lower] df[name].str.lower()
df[name_upper] df[name].str.upper()
print(df)
# name name_lower name_upper
# 0 Alice alice ALICE
# 1 Bob bob BOB
# 2 Charlie charlie CHARLIE3、str.replace()
替换字符串中的子字符串
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {name: [Alice, Bob, Charlie]}
df pd.DataFrame(data)
df[name_replaced] df[name].str.replace(a, X)
print(df)
# name name_replaced
# 0 Alice Alice
# 1 Bob Bob
# 2 Charlie ChXrlie4、str.strip()、str.lstrip() 和 str.rstrip()
str.strip()删除字符串两侧的空格
str.lstrip()删除字符串左侧的空格
str.rstrip()删除字符串右侧的空格
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {name: [ Alice , Bob , Charlie ]}
df pd.DataFrame(data)
df[name_strip] df[name].str.strip()
df[name_lstrip] df[name].str.lstrip()
df[name_rstrip] df[name].str.rstrip()
print(df)
# name name_strip name_lstrip name_rstrip
# 0 Alice Alice Alice Alice
# 1 Bob Bob Bob Bob
# 2 Charlie Charlie Charlie Charlie5、str.split()
拆分字符串为列表
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {name: [Alice, Bob, Charlie]}
df pd.DataFrame(data)
df[name_split] df[name].str.split( )
print(df)
# name name_split
# 0 Alice [Alice]
# 1 Bob [Bob]
# 2 Charlie [Charlie]6、str.startswith() 和 str.endswith()
str.startswith()检查字符串是否以特定前缀开头
str.endswith()检查字符串是否以特定后缀开头
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个示例 DataFrame
data {name: [Alice, Bob, Charlie]}
df pd.DataFrame(data)
df[name_startswith] df[name].str.startswith(A)
df[name_endswith] df[name].str.endswith(e)
print(df)
# name name_startswith name_endswith
# 0 Alice True True
# 1 Bob False False
# 2 Charlie False True7、str.count()
用于计算字符串中非空元素的方法
import pandas as pd # 导入 Pandas 库并使用别名 pd# 创建一个示例 DataFrame
data {name: [Alice, Bob, Charlie, None, David]}
df pd.DataFrame(data)
count_substring df[name].str.count(a)
print(count_substring)
# 0 0.0
# 1 0.0
# 2 1.0
# 3 NaN
# 4 1.0
# Name: name, dtype: float64
print(count_substring.sum()) # 2.0四、分组聚合
groupby() 是 Pandas 中一个方法用于将数据按照一个或多个列的值分组然后对每个分组应用聚合函数。
参数
by必需指定分组的列名或列名的列表。可以是单个列名的字符串也可以是列名的列表以按多列分组。这是 groupby() 方法的关键参数。axis可选指定分组的轴方向有两个选项 axis0默认值按行分组。axis1按列分组。 level可选如果输入 DataFrame 包含多层索引则可以指定要分组的索引级别。as_index可选默认情况下groupby() 结果的分组键会成为结果 DataFrame 的索引。设置 as_indexFalse 可以防止这种情况发生分组键将保留为列而不是索引。sort可选默认情况下分组键会根据分组键的值进行排序。设置 sortFalse 可以禁用排序可能提高性能。
import pandas as pd # 导入 Pandas 库并使用别名 pd# 创建一个示例 DataFrame
data {Category: [A, B, A, B, A],Value: [10, 20, 15, 25, 30]}
df pd.DataFrame(data)
# 按 Category 列分组并计算每个分组的平均值
grouped df.groupby(byCategory)
res1 grouped.mean()
print(res1)
# Value
# Category
# A 18.333333
# B 22.500000# 使用多列进行分组
grouped df.groupby(by[Category, Value])
# 聚合求和
res2 grouped.sum()
print(res2)
# Empty DataFrame
# Columns: []
# Index: [(A, 10), (A, 15), (A, 30), (B, 20), (B, 25)]# 使用自定义聚合函数
def custom_agg(x):return x.max() - x.min()
res3 df.groupby(byCategory).agg(custom_agg)
print(res3)
# Value
# Category
# A 20
# B 5五、透视表
pivot_table() 是 Pandas 中用于创建数据透视表的方法。数据透视表是一种用于总结和聚合数据的强大工具可以根据一个或多个列对数据进行重新排列以便更容易进行分析。
参数
data必需要创建数据透视表的 DataFrame。values必需要聚合的列名或列名的列表。这是要计算统计量的列。index可选一个或多个列名用于作为数据透视表的行索引行标签。columns可选一个或多个列名用于作为数据透视表的列索引列标签。aggfunc可选要应用于 values 中列的聚合函数可以是内置聚合函数例如 ‘sum’、‘mean’、‘count’ 等或自定义函数。默认情况下使用 ‘mean’。fill_value可选替代结果表中的缺失值。margins可选添加边际汇总生成汇总统计信息。dropna可选默认情况下如果所有条目都是 NaN则删除相应的行。设置为 False 可以保留包含 NaN 值的行。
import pandas as pd # 导入 Pandas 库并使用别名 pd# 创建一个示例 DataFrame
data {Date: [2023-01-01, 2023-01-01, 2023-01-02, 2023-01-02, 2023-01-03],Category: [A, B, A, B, A],Value: [10, 20, 15, 25, 30]}
df pd.DataFrame(data)
print(df)
# Date Category Value
# 0 2023-01-01 A 10
# 1 2023-01-01 B 20
# 2 2023-01-02 A 15
# 3 2023-01-02 B 25
# 4 2023-01-03 A 30# 创建数据透视表聚合Value列行索引为Date列索引为Category默认聚合函数为均值
pivot pd.pivot_table(df, valuesValue, indexDate, columnsCategory)
print(pivot)
# Category A B
# Date
# 2023-01-01 10.0 20.0
# 2023-01-02 15.0 25.0
# 2023-01-03 30.0 NaN记录学习过程欢迎讨论交流尊重原创转载请注明出处~