Python进阶复习-Pandas库

目录

使用场合

  • Pandas库是基于Numpy库建立的
  • 为数据添加标签、处理缺失值、分组和透视表方面Pandas更高效

对象创建

Series对象

  • Series 是带标签的【默认是从0开始的数字】一维数据结构,类似于字典,可以用来表示一列数据。
python 复制代码
import pandas as pd
# 创建 Series 对象  
s = pd.Series([1, 2, 3, 4, 5])  
print(s)
python 复制代码
0    1
1    2
2    3
3    4
4    5
dtype: int64

DataFrame对象

  • DataFrame 是带标签的多维数据结构,类似于表格,可以用来表示多列数据。
python 复制代码
# 创建 DataFrame 对象  
df = pd.DataFrame({'列 1': [1, 2, 3, 4, 5], '列 2': [6, 7, 8, 9, 10]})  
print(df)
python 复制代码
   列 1  列 2
0    1    6
1    2    7
2    3    8
3    4    9
4    5   10
  • 属性
  1. index: DataFrame的行索引。
  2. columns: DataFrame的列索引。
  3. dtypes: DataFrame 的数据类型。
  4. shape: DataFrame的行数和列数,返回一个元组 (rows, columns)。
  5. size: DataFrame的行数和列数的乘积,返回一个整数。
  6. values:返回 DataFrame 的全部数据,不包括索引。
  7. iterrows():返回一个迭代器,可以遍历 DataFrame 的每一行。
  8. itertuples():返回一个迭代器,可以遍历 DataFrame 的所有元组。
  9. apply():对 DataFrame 的每一列应用一个函数。
  10. agg():对 DataFrame 的每一列应用一个函数,返回一个新的 DataFrame。

Numpy与DataFrame

python 复制代码
import numpy as np
import pandas as pd
arr = np.array([[1, 2, 3], [4, 5, 6]])  
df = pd.DataFrame(arr,index=["hang","zhou"],columns=["lie","zhou","ya"]) 
print(df) 
python 复制代码
      lie  zhou  ya
hang    1     2   3
zhou    4     5   6

处理缺失值

  1. 删除缺失值:使用dropna()函数,可以删除包含缺失值的行或列。例如:
python 复制代码
import pandas as pd

data = {'A': [1, 2, None, 4], 'B': [None, 2, 3, 4]}  
df = pd.DataFrame(data)

# 删除包含缺失值的行  
df_no_na = df.dropna()

# 删除包含缺失值的列  
df_no_na = df.dropna(axis=1)  
  1. 填充缺失值:使用fillna()函数,可以填充缺失值。可以使用指定的值、前一个值、后一个值、均值、中位数等方法。例如:
python 复制代码
import pandas as pd

data = {'A': [1, 2, None, 4], 'B': [None, 2, 3, 4]}  
df = pd.DataFrame(data)

# 使用指定的值填充缺失值  
df_filled = df.fillna(value=0)

# 使用前一个值填充缺失值  
df_filled = df.fillna(method='ffill')

# 使用后一个值填充缺失值  
df_filled = df.fillna(method='bfill')

# 使用均值填充缺失值  
df_filled = df.fillna(method='mean')  

分组

groupby() 函数

python 复制代码
import pandas as pd

# 创建一个 dataframe 对象  
data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'A'],  
        'Value': [10, 20, 30, 40, 50, 60, 70, 80]}  
df = pd.DataFrame(data)

# 使用 groupby() 函数进行分组  
grouped = df.groupby('Category')

# 查看分组结果  
for name, group in grouped:  
    print(name)  
    print(group)  
python 复制代码
A
  Category  Value
0        A     10
2        A     30
4        A     50
6        A     70
7        A     80
B
  Category  Value
1        B     20
3        B     40
5        B     60

apply()函数

  • pandas 库的 apply() 函数用于对 DataFrame 或 Series 对象进行逐行或逐列的操作。它接受一个函数作为参数,并将该函数应用于对象的每个元素。apply 函数可以用于执行数据转换、计算、过滤等操作。
python 复制代码
import pandas as pd

# 创建一个 DataFrame  
data = {'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}  
df = pd.DataFrame(data)

# 定义一个函数,用于将每个元素乘以 2  
def multiply_by_2(x):  
    return x * 2

# 使用 apply 函数  
result = df.apply(multiply_by_2)

print(result)  

执行结果:

   A   B  
0  2  10  
1  4  12  
2  6  14  
3  8  16  

透视表

  • Pandas的透视表主要用于数据汇总和分析。当需要对大量数据进行快速汇总和分析时,可以使用透视表来完成。透视表可以将数据按照不同的维度进行分组,并计算每个分组的聚合数据,例如求和、平均值、计数等。
python 复制代码
import pandas as pd

# 创建一个数据框  
data = {'A': [1, 2, 3, 4, 5],  
        'B': [10, 20, 30, 40, 50],  
        'C': [100, 200, 300, 400, 500]}  
df = pd.DataFrame(data)

# 创建透视表  
pivot_table = pd.pivot_table(df, values='C', index='A', columns='B', aggfunc='sum')

print(pivot_table)  

输出:

         B    sum  
A            
1        10  1100  
2        20  2100  
3        30  3100  
4        40  4100  
5        50  5100  
相关推荐
斯凯利.瑞恩2 分钟前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
杨荧17 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
白子寰23 分钟前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
yannan2019031323 分钟前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁33 分钟前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev35 分钟前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
王俊山IT35 分钟前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
为将者,自当识天晓地。37 分钟前
c++多线程
java·开发语言
小政爱学习!39 分钟前
封装axios、环境变量、api解耦、解决跨域、全局组件注入
开发语言·前端·javascript
好喜欢吃红柚子1 小时前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn