wordpress标签列表内页无效链接,网站seo技巧,wordpress伪静态去掉index.php,东莞seo优化联系电话文章目录 1.pandas的特点2.Series2.1新建Seriws2.2使用标签来选择数据2.3 通过指定位置选择数据2.4 使用布尔值选择数据2.5 其他操作2.5.1 修改数据2.5.2 统计操作2.5.3 缺失数据处理 3.DataFrame3.1 新建 DataFrame3.2 选择数据3.2.1 使用标签选择数据3.2.2 使用 iloc 选择数据… 文章目录 1.pandas的特点2.Series2.1新建Seriws2.2使用标签来选择数据2.3 通过指定位置选择数据2.4 使用布尔值选择数据2.5 其他操作2.5.1 修改数据2.5.2 统计操作2.5.3 缺失数据处理 3.DataFrame3.1 新建 DataFrame3.2 选择数据3.2.1 使用标签选择数据3.2.2 使用 iloc 选择数据3.2.3 使用指定列名选择数据3.2.4 使用布尔值选择数据 3.3 修改数据3.4 统计操作3.5 处理缺失数据 4.读取格式各样的数据4.1 读取 CSV 格式文件4.2 读取 Excel 文件4.3 读取 SQL 文件4.4 读取 HTML 文件 5.数据预处理5.1 使用布尔值筛选数据5.2 使用 where 方法筛选数据5.3 修改数据5.4 缺失值处理5.5 排序 6.统计计算6.1 常见的统计函数描述性统计分布和形状相关性自定义统计 6.2 快速统计汇总 7.交叉统计7.1 使用 groupby() 统计7.2 使用 pivot_table() 统计 8.时间序列的数据处理8.1 使用时间序列数据的函数8.2 DatetimeIndex8.3 筛选时间序列数据8.4 采样 pandas是具有非常直观且容易操作的索引数据的python第三方软件包。pandas主要有两种数据结构分别是Series和DataFrame其广泛用于金融、统计、社会科学等领域的数据分析工作。 1.pandas的特点
数据结构 DataFrame类似于 Excel 表格可以存储不同类型的数据列。Series一维数组可以存储任何数据类型整数、字符串、浮点数、Python 对象等。 数据操作 支持大量的数据操作包括数据清洗、处理缺失数据、重采样时间序列数据等。提供了丰富的数据对齐和集成处理功能。 数据索引 支持多种索引方式包括时间戳、整数索引、标签索引等。可以对数据进行高效的切片、筛选和分组。 时间序列功能 强大的时间序列功能可以轻松处理和分析时间序列数据。 数据合并 提供了多种数据合并和连接工具如 merge、join 和 concat。 数据分组 通过 groupby 功能可以对数据进行分组并应用聚合函数。 数据重塑 支持 pivot、melt 等操作可以轻松地重塑数据结构。 处理大数据 虽然 Pandas 不是为处理大规模数据集而设计的但它可以与 Dask 等库结合使用以处理超出内存限制的大型数据集。 集成性 可以与 NumPy、SciPy、Matplotlib、Scikit-learn 等其他 Python 数据科学库无缝集成。 性能 底层使用 Cython 和 C 语言编写提供了快速的数据操作性能。 易用性 提供了直观的 API使得数据操作和分析变得简单直观。 文档和社区 拥有详细的官方文档和活跃的社区用户可以轻松找到帮助和资源。
2.Series
在 Pandas 库中Series 是一种一维数组结构可以存储任何数据类型整数、字符串、浮点数、Python 对象等。它类似于 Python 中的列表list或 NumPy 的一维数组但 Series 更加强大因为它可以存储不同的数据类型并且每个元素都有一个标签称为索引。
2.1新建Seriws
可以使用pandas.Series类来新建Series第一个参数可以带入(列表、元组、字典、numpy.ndarry)等数据。
ser pd.Series([1,2,3,4,5],indexlist(abcde))
ser如果省略index的话会默认从0开始创建索引
pd.Series([1,2,3,4,5])2.2使用标签来选择数据
使用loc方法可以根据标签来选择数据
#指定标签
print(ser.loc[b]) #不使用loc
print(ser[b]) #指定标签范围
print(ser.loc[a:c])你已经很好地概述了 Pandas 中 Series 的创建和基本访问方法。下面我将补充一些细节和额外的操作以帮助你更好地理解 Series 的使用。
2.3 通过指定位置选择数据
在 Pandas 中除了使用标签索引来选择数据外还可以通过位置整数索引来选择数据。这与 Python 列表的索引类似。以下是一些示例
import pandas as pd# 创建 Series
ser pd.Series([1, 2, 3, 4, 5], indexlist(abcde))# 使用位置选择第一个元素
print(ser.iloc[0]) # 输出: 1# 使用位置选择多个元素
print(ser.iloc[0:3]) # 输出: a 1, b 2, c 3# 使用位置选择最后一个元素
print(ser.iloc[-1]) # 输出: 52.4 使用布尔值选择数据
布尔索引是 Pandas 中非常强大的一个功能它允许你根据条件选择数据。以下是一些示例
import pandas as pd# 创建 Series
ser pd.Series([1, 2, 3, 4, 5], indexlist(abcde))# 使用布尔索引选择大于2的元素
print(ser[ser 2])# 使用布尔索引选择小于等于3的元素
print(ser[ser 3])2.5 其他操作
2.5.1 修改数据
你可以直接通过索引来修改 Series 中的数据
ser[a] 10 # 修改索引为 a 的元素
print(ser)2.5.2 统计操作
Series 提供了许多内置的统计方法如 sum(), mean(), max(), min(), std(), var() 等
print(ser.sum()) # 求和
print(ser.mean()) # 求平均值
print(ser.max()) # 求最大值
print(ser.min()) # 求最小值
print(ser.std()) # 标准差
print(ser.var()) # 方差2.5.3 缺失数据处理
如果 Series 中包含缺失值NaNPandas 提供了多种处理方法如 dropna(), fillna() 等
ser pd.Series([1, 2, None, 4, 5])
print(ser.dropna()) # 删除缺失值ser.fillna(0, inplaceTrue) # 将缺失值填充为0
print(ser)这些操作使得 Series 成为一个非常灵活和强大的数据结构适用于各种数据分析任务。
3.DataFrame
DataFrame 是 Pandas 中的另一个核心数据结构它是一个二维表格型数据结构可以被看作是由多个 Series 组成的每个 Series 作为 DataFrame 的一列所有 Series 共享一个索引。
3.1 新建 DataFrame
DataFrame 可以通过多种方式创建例如从字典、列表、NumPy 数组、已有的 DataFrame 或者直接从数据文件如 CSV中读取。
import pandas as pd# 从字典创建 DataFrame
data {Name: [John, Anna, Peter, Linda],Age: [28, 23, 34, 29],City: [New York, Paris, Berlin, London]}
df pd.DataFrame(data)
print(df)# 从列表创建 DataFrame
data [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
df pd.DataFrame(data, columns[A, B, C])
print(df)# 从 NumPy 数组创建 DataFrame
import numpy as np
data np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df pd.DataFrame(data, columns[A, B, C])
print(df)3.2 选择数据
3.2.1 使用标签选择数据
使用 .loc 可以基于标签选择数据。它允许你选择行和列。
# 选择行标签为 John 的行
print(df.loc[df[Name] John])# 选择列 Age 和 City
print(df.loc[:, [Age, City]])3.2.2 使用 iloc 选择数据
使用 .iloc 可以基于整数位置选择数据。它允许你选择行和列。
# 选择第一行
print(df.iloc[0])# 选择前两行和前两列
print(df.iloc[:2, :2])3.2.3 使用指定列名选择数据
直接使用列名可以快速选择列。
# 选择 Age 列
print(df[Age])3.2.4 使用布尔值选择数据
布尔索引允许你根据条件选择行。
# 选择 Age 大于 25 的行
print(df[df[Age] 25])3.3 修改数据
修改 DataFrame 中的数据与 Series 类似可以直接通过标签或位置进行修改。
# 修改 John 的 City 为 Los Angeles
df.loc[df[Name] John, City] Los Angeles
print(df)3.4 统计操作
DataFrame 提供了丰富的统计方法可以对整个数据框或特定的列进行操作。
# 计算每列的描述性统计
print(df.describe())# 计算 Age 列的平均值
print(df[Age].mean())3.5 处理缺失数据
与 Series 类似DataFrame 也支持多种处理缺失数据的方法。
# 添加缺失值
df.loc[3, Age] None# 删除包含缺失值的行
print(df.dropna())# 填充缺失值
df.fillna(value30, inplaceTrue)
print(df)DataFrame 是进行数据科学和分析工作时非常强大的工具它提供了灵活的数据操作和分析功能。
4.读取格式各样的数据
Pandas 提供了多种函数来读取不同格式的数据文件这些函数使得数据导入变得非常简单和直接。以下是一些常用的数据读取方法
4.1 读取 CSV 格式文件
CSV逗号分隔值文件是一种常见的数据交换格式。Pandas 的 read_csv 函数可以轻松读取 CSV 文件。
import pandas as pd# 读取 CSV 文件
df pd.read_csv(path_to_file.csv)# 显示前几行数据
print(df.head())read_csv 函数提供了许多参数来处理不同的 CSV 格式例如指定分隔符、处理缺失值、选择特定的列等。
4.2 读取 Excel 文件
Excel 文件是一种广泛使用的电子表格格式。Pandas 的 read_excel 函数可以用来读取 Excel 文件。
# 读取 Excel 文件
df pd.read_excel(path_to_file.xlsx)# 显示前几行数据
print(df.head())read_excel 函数允许你指定工作表、读取特定的单元格范围等。
4.3 读取 SQL 文件
Pandas 可以通过 SQL Alchemy 连接到数据库并使用 read_sql 或 read_sql_query 函数读取 SQL 数据。
from sqlalchemy import create_engine
import pandas as pd# 创建数据库连接引擎
engine create_engine(database_connection_string)# 读取 SQL 查询结果
df pd.read_sql_query(SELECT * FROM table_name, conengine)# 显示前几行数据
print(df.head())这里需要一个有效的数据库连接字符串以及对应的数据库驱动。
4.4 读取 HTML 文件
Pandas 的 read_html 函数可以解析 HTML 中的 table 标签并将其转换为 DataFrame 对象。
# 读取 HTML 文件
df pd.read_html(path_to_file.html)# df 是一个 DataFrame 列表选择第一个 DataFrame
df df[0]# 显示前几行数据
print(df.head())read_html 函数会尝试找到 HTML 文件中所有的 table 标签并返回一个包含所有表格数据的 DataFrame 列表。
在读取这些文件时Pandas 允许你指定各种参数来处理文件中的特定格式例如编码、列名、数据类型等。这些函数大大简化了从不同数据源导入数据的过程。
5.数据预处理
数据预处理是数据分析和机器学习项目中的关键步骤Pandas 提供了多种工具来帮助我们完成这些任务。以下是一些常见的数据预处理技术
5.1 使用布尔值筛选数据
布尔索引允许我们根据条件筛选数据。我们可以对 DataFrame 或 Series 使用布尔表达式来选择满足条件的行或列。
import pandas as pd# 假设我们有以下 DataFrame
df pd.DataFrame({Age: [25, 30, 35, 40, 45],Name: [John, Anna, Peter, Linda, Michael]
})# 使用布尔值筛选年龄大于 30 的人
filtered_df df[df[Age] 30]
print(filtered_df)5.2 使用 where 方法筛选数据
where 方法可以根据一个条件表达式来过滤数据返回一个满足条件的布尔型 DataFrame 或 Series。
# 使用 where 方法筛选年龄大于 30 的人
filtered_df df.where(df[Age] 30)
print(filtered_df)where 方法返回的结果是对原始数据的布尔型掩码如果需要替换不满足条件的值可以结合 fillna 或 mask 方法使用。
5.3 修改数据
直接通过标签或位置修改数据。
# 修改特定行的数据
df.loc[df[Name] John, Age] 28# 修改特定列的数据
df[Age] df[Age] 1
print(df)5.4 缺失值处理
缺失值处理是数据预处理中的一个重要部分。Pandas 提供了多种方法来处理缺失值。
# 删除包含缺失值的行
df_cleaned df.dropna()# 填充缺失值
df_filled df.fillna(value0)
print(df_filled)还可以使用 interpolate 方法来进行插值填充。
5.5 排序
排序是数据分析中的常见操作Pandas 提供了 sort_values 方法来对数据进行排序。
# 按年龄升序排序
sorted_df df.sort_values(byAge)# 按年龄降序排序
sorted_df_desc df.sort_values(byAge, ascendingFalse)
print(sorted_df)
print(sorted_df_desc)排序时可以指定多个列并设置是否升序或降序。
这些是数据预处理中常用的一些操作Pandas 提供的这些功能使得数据清洗和准备变得非常高效和方便。
6.统计计算
统计计算是数据分析中的核心部分Pandas 提供了丰富的函数来进行描述性统计分析。以下是一些常用的统计计算方法
6.1 常见的统计函数
描述性统计
count(): 计算非NA/null值的数量。mean(): 计算平均值。median(): 计算中位数。min() 和 max(): 计算最小值和最大值。std() 和 var(): 计算标准差和方差。sum(): 计算总和。size(): 返回数据的总大小。
import pandas as pd# 创建一个简单的 DataFrame
df pd.DataFrame({A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]
})# 计算描述性统计
print(df.describe())分布和形状
skew(): 计算偏度数据分布的不对称性。kurt(): 计算峰度数据分布的“尾部”程度。
print(df.skew())
print(df.kurt())相关性
corr(): 计算列之间的相关系数。
print(df.corr())自定义统计
agg(): 允许应用多个统计函数。
print(df.agg([mean, max, min]))6.2 快速统计汇总
Pandas 的 describe() 方法可以快速提供一个数据框的汇总统计包括平均值、标准差、最小值、最大值等。
# 对整个 DataFrame 进行描述性统计
print(df.describe())# 对指定列进行描述性统计
print(df[[A, B]].describe())describe() 方法默认计算数值列的统计信息但也可以用于字符串类型的列此时会显示计数、唯一值数量、最常见值等信息。
对于分类数据可以使用 value_counts() 方法来查看每个类别的频率。
# 假设我们有一个分类列
df[Category] [A, B, A, C, B]
print(df[Category].value_counts())统计计算是数据分析的基础Pandas 提供的这些功能使得从数据中提取有意义的统计信息变得非常简单。通过这些统计函数我们可以快速了解数据的分布、中心趋势和离散程度。
7.交叉统计
在 Pandas 中groupby() 和 pivot_table() 是两个非常强大的工具它们可以帮助我们对数据进行分组和汇总统计。
7.1 使用 groupby() 统计
groupby() 方法允许我们根据一个或多个键将数据分组然后对每个组应用聚合函数如 sum()、mean()、count() 等。
import pandas as pd# 创建一个示例 DataFrame
df pd.DataFrame({Category: [A, B, A, B, C, A, B, C],Values: [10, 20, 30, 40, 50, 60, 70, 80]
})# 根据 Category 列分组并计算每个组的总和
grouped_sum df.groupby(Category)[Values].sum()
print(grouped_sum)# 可以同时应用多个聚合函数
grouped_stats df.groupby(Category)[Values].agg([sum, mean, count])
print(grouped_stats)groupby() 也可以用于多级分组即根据多个列进行分组。
# 假设我们有另一个列 Subcategory
df[Subcategory] [X, X, Y, Y, X, Y, X, Y]
grouped_multi df.groupby([Category, Subcategory])[Values].sum()
print(grouped_multi)7.2 使用 pivot_table() 统计
pivot_table() 方法类似于 groupby()但它提供了更多的灵活性允许我们重新排列数据创建一个透视表其中指定的列成为行和列索引而其他列则用于计算值。
# 创建透视表以 Category 为行索引Subcategory 为列索引计算 Values 的总和
pivot_table df.pivot_table(indexCategory, columnsSubcategory, valuesValues, aggfuncsum)
print(pivot_table)pivot_table() 方法非常灵活可以处理多个聚合函数并且可以填充缺失值处理缺失的组合等。
# 创建透视表并填充缺失值
pivot_table_filled df.pivot_table(indexCategory, columnsSubcategory, valuesValues, aggfuncsum, fill_value0)
print(pivot_table_filled)pivot_table() 还允许我们指定多个聚合函数并对结果进行进一步的处理。
# 创建透视表并应用多个聚合函数
pivot_table_multi df.pivot_table(indexCategory, columnsSubcategory, valuesValues, aggfunc[sum, mean])
print(pivot_table_multi)这些工具在数据分析中非常有用特别是当你需要对数据进行分组分析或创建复杂的汇总报表时。通过 groupby() 和 pivot_table()我们可以轻松地对数据进行多维度的探索和分析。
8.时间序列的数据处理
时间序列数据是一系列按照时间顺序排列的数据点。在金融、气象、经济和其他许多领域中时间序列分析是一个重要的分析工具。Pandas 提供了强大的工具来处理时间序列数据。
8.1 使用时间序列数据的函数
Pandas 提供了一系列专门用于处理时间序列数据的函数。这些函数可以帮助我们对时间序列数据进行索引、重采样、移动窗口统计等操作。
import pandas as pd
import datetime as dt# 创建时间序列数据
dates pd.date_range(20230101, periods6)
values [10, 20, 25, 30, 40, 50]
ts pd.Series(values, indexdates)# 访问时间序列数据
print(ts)# 时间序列的日期偏移
ts_1day_later ts.shift(1)
print(ts_1day_later)# 时间序列的滚动统计
rolling_mean ts.rolling(window3).mean()
print(rolling_mean)8.2 DatetimeIndex
DatetimeIndex 是 Pandas 中专门用于时间序列的索引对象。它能够处理日期和时间数据并提供丰富的时间序列功能。
# 创建 DatetimeIndex
index pd.DatetimeIndex([2023-01-01, 2023-01-02, 2023-01-03])# 将 DatetimeIndex 设置为范围
date_range pd.date_range(start2023-01-01, end2023-01-10, freqD)# 创建时间序列数据
ts_with_range pd.Series(range(10), indexdate_range)
print(ts_with_range)8.3 筛选时间序列数据
可以使用 DatetimeIndex 来筛选时间序列数据。
# 筛选特定时间段的数据
selected_ts ts[2023-01-02:2023-01-04]
print(selected_ts)8.4 采样
时间序列数据的采样是指从时间序列中提取特定时间点的数据。Pandas 允许我们使用 resample 方法对时间序列数据进行采样。
# 重采样时间序列数据
resampled_ts ts.resample(D).mean() # 每日平均值
print(resampled_ts)# 可以指定不同的频率
resampled_ts_monthly ts.resample(M).mean() # 每月平均值
print(resampled_ts_monthly)在处理时间序列数据时Pandas 提供的这些工具可以帮助我们有效地管理和分析数据。通过时间序列分析我们可以识别数据中的模式、趋势和季节性变化这对于预测和决策制定非常有价值。