当前位置: 首页 > wzjs >正文

免费wordpress主题破解版全网优化哪家好

免费wordpress主题破解版,全网优化哪家好,做高仿网站有哪些,wordpress封禁插件- 第 105 篇 - Date: 2025 - 06 - 05 Author: 郑龙浩/仟墨 Pandas 核心功能详解与示例 文章目录 Pandas 核心功能详解与示例1. 数据结构基础1.1 Series 创建与操作1.2 DataFrame 创建与操作 2. 数据选择与过滤2.1 基本选择方法2.2 布尔索引 3. 数据处理与清洗3.1 缺失值处理3.…

- 第 105 篇 -
Date: 2025 - 06 - 05
Author: 郑龙浩/仟墨

Pandas 核心功能详解与示例

文章目录

  • Pandas 核心功能详解与示例
    • 1. 数据结构基础
      • 1.1 Series 创建与操作
      • 1.2 DataFrame 创建与操作
    • 2. 数据选择与过滤
      • 2.1 基本选择方法
      • 2.2 布尔索引
    • 3. 数据处理与清洗
      • 3.1 缺失值处理
      • 3.2 数据转换
    • 4. 数据分组与聚合
      • 4.1 基本分组操作
      • 4.2 聚合函数
    • 5. 数据合并与连接
      • 5.1 concat 连接
      • 5.2 merge 合并
    • 6. 时间序列处理
    • 7. 文件读写
      • 7.1 CSV文件
      • 7.2 Excel文件
      • 7.3 JSON文件

1. 数据结构基础

1.1 Series 创建与操作

Series 是 Pandas 库中的一维带标签数组,可以简单理解为 Excel 中的单列数据(但功能更强大)。它是构建 DataFrame 的基础组件,也是数据操作的核心对象之一。

创建Series:

pd.Series(data=None,        # 数据(列表、字典、标量等)index=None,       # 索引(标签)dtype=None,       # 数据类型name=None,        # Series 名称copy=False,       # 是否复制数据fastpath=False    # 内部优化参数(通常不直接使用)
)
  • data 是必须的,其他参数可选。
  • index 用于自定义标签,dtype 控制数据类型,name 用于命名 Series。
  • copy 一般不用改,除非需要避免数据被意外修改。
import pandas as pd
import numpy as np# 从列表创建
arr1 = pd.Series([1, 2, 3])  # 自动生成整数索引
print(arr1)
'''
0    1
1    2
2    3
dtype: int64
'''arr2 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])  # 自定义索引
print(arr2)
'''
a    1
b    2
c    3
dtype: int64
'''arr3 = pd.Series([1, 2, 3], dtype=float)  # 指定float类型
print(arr3)
'''
0    1.0
1    2.0
2    3.0
dtype: float64
'''# 从字典创建(自动使用字典键作为索引)
arr4 = pd.Series({'a': 1, 'b': 2, 'c': 3})
print(arr4)
'''
a    1
b    2
c    3
dtype: int64
'''data = [10, 20, 30]
idx = ['A', 'B', 'C']
arr5 = pd.Series(data=data, index=idx, name='名字')
print(arr5)
'''
A    10
B    20
C    30
Name: 名字, dtype: int64
'''

Series操作:

import pandas as pd
import numpy as np
#
# # 从列表创建
# arr1 = pd.Series([1, 2, 3])  # 自动生成整数索引
# print(arr1)
# '''
# 0    1
# 1    2
# 2    3
# dtype: int64
# '''
#
# arr2 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])  # 自定义索引
# print(arr2)
# '''
# a    1
# b    2
# c    3
# dtype: int64
# '''
#
# arr3 = pd.Series([1, 2, 3], dtype=float)  # 指定float类型
# print(arr3)
# '''
# 0    1.0
# 1    2.0
# 2    3.0
# dtype: float64
# '''
#
# # 从字典创建(自动使用字典键作为索引)
# arr4 = pd.Series({'a': 1, 'b': 2, 'c': 3})
# print(arr4)
# '''
# a    1
# b    2
# c    3
# dtype: int64
# '''data = [10, 20, 30]
idx = ['A', 'B', 'C']
arr5 = pd.Series(data=data, index=idx, name='名字')
print(arr5)
'''
A    10
B    20
C    30
Name: 名字, dtype: int64
'''# 索引访问某个元素
print(arr5['B']) # 20# 向量化运算
print(arr5 * 2) # 所有元素 * 2
'''
A    20
B    40
C    60
Name: 名字, dtype: int64
'''# 布尔索引
print(arr5[arr5 > 15]) # 取出 arr5 中,大于15的元素
'''
B    20
C    30
Name: 名字, dtype: int64
'''

1.2 DataFrame 创建与操作

DataFrame 是 Pandas 库中最核心的二维表格型数据结构,相当于 Python 中的"电子表格"或"SQL表"。它的主要作用是为数据分析和处理提供高效灵活的工具,以下是其核心作用和特点

创建DataFrame:

import pandas as pd
import numpy as np# 从字典创建
df1 = pd.DataFrame({'A': 1.0,'B': pd.Timestamp('2025-06-05'),'C': pd.Series(1, index=list(range(4))),'D': np.array([3] * 4),'E': pd.Categorical(["test", "train", "test", "train"]),'F': 'aaa'
})
print(df1)
"""A          B  C  D      E    F
0  1.0 2025-06-05  1  3   test  aaa
1  1.0 2025-06-05  1  3  train  aaa
2  1.0 2025-06-05  1  3   test  aaa
3  1.0 2025-06-05  1  3  train  aaa
"""# 从二维数组创建
df2 = pd.DataFrame(np.random.randn(6, 4), columns=list('ABCD'))
print(df2.head(2))
"""A         B         C         D
0 -1.043791 -0.519411 -0.204117 -1.169345
1 -0.386409  0.978335 -0.092777 -1.832369
"""

DataFrame操作:

# 查看前几行
print(df2.head(2))# 查看统计信息
print(df2.describe())
"""A         B         C         D
count  6.000000  6.000000  6.000000  6.000000
mean   0.073711 -0.431125 -0.687758 -0.233103
std    0.843157  0.922818  0.779887  0.973118
min   -0.861849 -2.104569 -1.509059 -1.135632
25%   -0.611510 -0.600794 -1.368714 -1.006602
50%    0.022072 -0.228039 -0.767252 -0.386671
75%    0.658444  0.041933 -0.034326  0.461706
max    1.212112  0.567020  0.276232  1.491390
"""# 转置
print(df2.T)

2. 数据选择与过滤

2.1 基本选择方法

# 选择列
print(df2['A'])  # 选择单列
print(df2[['A', 'C']])  # 选择多列# 使用loc按标签选择
print(df2.loc[0:3, ['A', 'B']])
"""A         B
0  0.469112 -0.282863
1  1.212112 -0.173215
2 -0.861849 -2.104569
3  0.721555 -0.706771
"""# 使用iloc按位置选择
print(df2.iloc[1:3, 0:2])
"""A         B
1  1.212112 -0.173215
2 -0.861849 -2.104569
"""

2.2 布尔索引

# 简单条件过滤
print(df2[df2['A'] > 0])
"""A         B         C         D
0  0.469112 -0.282863 -1.509059 -1.135632
1  1.212112 -0.173215  0.119209 -1.044236
3  0.721555 -0.706771 -1.039575  0.271860
5  0.404705  0.577046 -1.715002 -1.039268
"""# 多条件组合
print(df2[(df2['A'] > 0) & (df2['B'] < 0)])
"""A         B         C         D
0  0.469112 -0.282863 -1.509059 -1.135632
1  1.212112 -0.173215  0.119209 -1.044236
3  0.721555 -0.706771 -1.039575  0.271860
"""

3. 数据处理与清洗

3.1 缺失值处理

# 创建含缺失值的DataFrame
df3 = pd.DataFrame({'A': [1, 2, np.nan, 4],'B': [5, np.nan, np.nan, 8],'C': [10, 20, 30, 40]
})
print(df3)
"""A    B   C
0  1.0  5.0  10
1  2.0  NaN  20
2  NaN  NaN  30
3  4.0  8.0  40
"""# 检测缺失值
print(df3.isnull())
"""A      B      C
0  False  False  False
1  False   True  False
2   True   True  False
3  False  False  False
"""# 删除缺失值
print(df3.dropna())
"""A    B   C
0  1.0  5.0  10
3  4.0  8.0  40
"""# 填充缺失值
print(df3.fillna(value=0))
"""A    B   C
0  1.0  5.0  10
1  2.0  0.0  20
2  0.0  0.0  30
3  4.0  8.0  40
"""

3.2 数据转换

# 应用函数
print(df3['A'].apply(lambda x: x**2 if not pd.isnull(x) else 0))
"""
0    1.0
1    4.0
2    0.0
3   16.0
Name: A, dtype: float64
"""# 元素级转换
print(df3.applymap(lambda x: '%.1f' % x if not pd.isnull(x) else 'NaN'))
"""A    B    C
0  1.0  5.0 10.0
1  2.0  NaN 20.0
2  NaN  NaN 30.0
3  4.0  8.0 40.0
"""

4. 数据分组与聚合

4.1 基本分组操作

df4 = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],'C': np.random.randn(8),'D': np.random.randn(8)
})
print(df4)
"""A      B         C         D
0  foo    one  0.469112 -0.861849
1  bar    one -0.282863 -2.104569
2  foo    two -1.509059 -0.494929
3  bar  three -1.135632  1.071804
4  foo    two  1.212112  0.721555
5  bar    two -0.173215 -0.706771
6  foo    one  0.119209 -1.039575
7  foo  three -1.044236  0.271860
"""# 单列分组
grouped = df4.groupby('A')
print(grouped.mean())
"""C         D
A                      
bar -0.530570 -0.579845
foo -0.150572 -0.280588
"""# 多列分组
print(df4.groupby(['A', 'B']).mean())
"""C         D
A   B                        
bar one   -0.282863 -2.104569three -1.135632  1.071804two   -0.173215 -0.706771
foo one    0.294161 -0.950712three -1.044236  0.271860two   -0.148473  0.113313
"""

4.2 聚合函数

# 多种聚合函数
print(grouped.agg(['sum', 'mean', 'std']))
"""C                             D                    sum      mean       std       sum      mean       std
A                                                          
bar -1.591710 -0.530570  0.526860 -1.739536 -0.579845  1.591985
foo -0.752862 -0.150572  1.113308 -1.402938 -0.280588  0.739965
"""# 不同列应用不同聚合
print(grouped.agg({'C': 'sum', 'D': ['min', 'max']}))
"""C    D          sum   min       max
A                            
bar -1.591710 -2.104569  1.071804
foo -0.752862 -1.039575  0.721555
"""

5. 数据合并与连接

5.1 concat 连接

df5 = pd.DataFrame(np.random.randn(3, 4), columns=['A', 'B', 'C', 'D'])
df6 = pd.DataFrame(np.random.randn(2, 3), columns=['A', 'B', 'C'])# 纵向连接
print(pd.concat([df5, df6]))
"""A         B         C         D
0  1.075770 -0.109050  1.643563 -1.469388
1  0.357021 -0.674600 -1.776904 -0.968914
2 -1.294524  0.413738  0.276662 -0.472035
0 -0.013960 -0.362543 -0.006154       NaN
1 -0.923061  0.895717  0.805244       NaN
"""# 横向连接
print(pd.concat([df5, df6], axis=1))
"""A         B         C         D         A         B         C
0  1.075770 -0.109050  1.643563 -1.469388 -0.013960 -0.362543 -0.006154
1  0.357021 -0.674600 -1.776904 -0.968914 -0.923061  0.895717  0.805244
2 -1.294524  0.413738  0.276662 -0.472035       NaN       NaN       NaN
"""

5.2 merge 合并

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3']
})right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']
})# 内连接
print(pd.merge(left, right, on='key'))
"""key   A   B   C   D
0  K0  A0  B0  C0  D0
1  K1  A1  B1  C1  D1
2  K2  A2  B2  C2  D2
3  K3  A3  B3  C3  D3
"""# 左连接
print(pd.merge(left, right, how='left', on='key'))
"""key   A   B    C    D
0  K0  A0  B0   C0   D0
1  K1  A1  B1   C1   D1
2  K2  A2  B2   C2   D2
3  K3  A3  B3   C3   D3
"""

6. 时间序列处理

# 创建时间序列
date_rng = pd.date_range(start='1/1/2025', end='1/08/2025', freq='D')
df7 = pd.DataFrame(date_rng, columns=['date'])
df7['data'] = np.random.randint(0,100,size=(len(date_rng)))
print(df7)
"""date  data
0 2025-01-01    95
1 2025-01-02    27
2 2025-01-03    63
3 2025-01-04    60
4 2025-01-05    49
5 2025-01-06    42
6 2025-01-07    96
7 2025-01-08    99
"""# 重采样
df7.set_index('date', inplace=True)
print(df7.resample('3D').mean())
"""data
date            
2025-01-01  61.666667
2025-01-04  50.333333
2025-01-07  97.500000
"""

7. 文件读写

7.1 CSV文件

# 写入CSV
df7.to_csv('sample.csv')# 读取CSV
df_read = pd.read_csv('sample.csv')
print(df_read.head())
"""date  data
0 2025-01-01    95
1 2025-01-02    27
2 2025-01-03    63
3 2025-01-04    60
4 2025-01-05    49
"""

7.2 Excel文件

# 写入Excel
df7.to_excel('sample.xlsx', sheet_name='Sheet1')# 读取Excel
df_excel = pd.read_excel('sample.xlsx')
print(df_excel.head())

7.3 JSON文件

# 写入JSON
df7.to_json('sample.json')# 读取JSON
df_json = pd.read_json('sample.json')
print(df_json.head())
http://www.dtcms.com/wzjs/43172.html

相关文章:

  • 珠海网站建设策划方案网站收录提交入口网址
  • 怎么把网站放到空间搜索引擎优化分析报告
  • 在线单页网站制作网站信息
  • 莱芜都市网直播惠州seo管理
  • 国内外网站开发技术如何优化网站
  • 免费域名网站推荐科学新概念外链平台
  • 域名有了怎么制作网站电商网站如何避免客户信息泄露
  • 自己建设的网站如何优化企业网络推广服务
  • 织梦模板 行业网站凡科建站怎么样
  • 网站付费推广方式西安百度百科
  • 浦西网站建设百度的特点和优势
  • 公司网站用什么系统app推广注册赚钱
  • 国产安卓开发工具产品seo基础优化
  • 看网红直播做爰的网站美业推广平台
  • 网站建设目的意义外链互换平台
  • o2o分销系统网站建设今日头条新闻最新疫情
  • 网站建设客户分析seo官网
  • 怎样做网站服务器武汉百度信息流广告
  • 合肥做公司网站一般多少钱网络培训心得体会
  • 帮别人做网站赚多少钱汕头网站制作设计
  • 深圳工业设计展2022网站优化排名软件推广
  • 微信微网站开通在百度平台如何做营销
  • 网站备案加急平台推广公司
  • 个人网站备案建设方案书使用最佳搜索引擎优化工具
  • 高端网站建设谷美今日国际新闻最新消息
  • 武汉单位做网站深圳网络优化推广公司
  • 大连网站制作的公司seo企业建站系统
  • 创办免费企业网站关键词筛选工具
  • 网站图片左右滚动惠州seo外包公司
  • 网站为什么做版心限制软文300字介绍商品