首页 > 编程语言 >python --数据分析-numpy-pandas-series对象和dataframe对象

python --数据分析-numpy-pandas-series对象和dataframe对象

时间:2024-06-06 19:31:21浏览次数:30  
标签:索引 python series s1 dataframe df 对象 Series print

Python作为当下最为流行的编程语言之一,可以独立完成数据分析的各种任务

  • 功能强大,在数据分析领域里有海量开源库,并持续更新

  • 是当下热点——机器学习/深度学习 领域最热门的编程语言

  • 除数据分析领域外,在爬虫,Web开发等领域均有应用

常用Python数据分析开源库介绍

NumPy

  • NumPy(Numerical Python) 是Python数据分析必不可少的第三方库,NumPy的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据类型,使其具备了构造复杂数据类型的能力。

  • 是一个运行速度非常快的数学库,主要用于数组计算,包含:

    • 高性能科学计算和数据分析的基础包

    • ndarray,多维数组,具有矢量(向量)运算能力,快速、节省空间

    • 矩阵运算,无需循环,可完成类似Matlab(商业数学软件)中的矢量运算

    • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具

 Pandas

  • Pandas是一个强大的分析==结构化数据==的工具集,Pandas丰富的API能够更加灵活、快速的对数据进行==清洗==、==处理==以及==分析==。

  • Pandas在数据处理上具有独特的优势:

    • 底层是基于NumPy构建的,所以运行速度特别的快

    • 有专门的处理缺失数据的API

    • 具有强大而灵活的分组、聚合、转换功能

  • Pandas利器之==Series==

    • Series是一种类似于一维数据的数据结构

    • 是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即行索引)组成

    • 仅由一组数据也可产生简单的Series对象

  • Pandas利器之==DataFrame==

    • DataFrame是一种表格型的数据结构,既有行索引也有列索引,可以简单的把DataFrame理解为一张数据表

    • 包含有一组或多组有序的列(Series),每列可以是不同的值类型(数值、字符串、布尔型等)

 Matplotlib

  • Matplotlib 是一个功能强大的数据可视化开源Python库

  • Python中使用最多的图形绘图库

  • 可以创建静态,动态和交互式的图表

Seaborn

  • Seaborn是一个Python数据可视化开源库

  • 建立在matplotlib之上,并集成了pandas的数据结构

  • Seaborn通过更简洁的API来绘制信息更丰富,更具吸引力的图像

  • 面向数据集的API,与Pandas配合使用起来比直接使用Matplotlib更方便

Sklearn

  • scikit-learn 是基于 Python 语言的机器学习工具

    • 简单高效的数据挖掘和数据分析工具

    • 可供大家在各种环境中重复使用

    • 建立在 NumPy ,SciPy(Scientific Python) 和 matplotlib 上

Jupyter Notebook

  • Jupyter Notebook是一个开源Web应用程序,使用Jupyter Notebook可以创建和共享

    • 代码

    • 数学公式

    • 可视化图表

    • 笔记文档

  • Jupyter Notebook用途

    • 数据清理和转换

    • 统计分析

    • 数据可视化

    • 机器学习等

  • Jupyter Notebook是数据分析学习和开发的首选开发环境

  • 启动Jupyter服务

  • Windows使用

    1、打开命令提示符

    2、安装 Jupyter Notebook:在命令提示符中输入以下命令,使用 pip 安装 Jupyter Notebook。

    pip install jupyter notebook
    或
    pip install jupyter notebook  -i https://pypi.tuna.tsinghua.edu.cn/simple

    3、启动 Jupyter Notebook:在命令提示符中输入以下命令,启动 Jupyter Notebook。

    jupyter notebook

    4、接下来Jupyter Notebook 会在默认的浏览器中打开,如果没有自动打开,可以在浏览器中输入:

    http://localhost:8888/tree 来访问。

总结:

  • 了解Python做数据分析的优势

    • Python可以独立高效的完成数据分析相关的全部工作

  • 知道Python数据分析常用开源库

    • Pandas

    • Numpy

    • Matplotlib

    • Seaborn

    • sklearn

  • 会启动和使用jupyter notebook

Pandas的数据结构

panads是什么

Pandas是Python的一个开源数据分析库,用作数据分析,有两个数据结构:Series、DataFrame

Series:一维数组,可以保存任何数据类型(整数、字符串、浮点数、Python对象等),Series带有索引,目前可以理解为一列数据。
DataFrame:二维表格型数据结构,可以看作是由Series组成的字典对象。DataFrame既有行索引也有列索引,它可以被看作是一个共享相同索引的多个Series对象的集合。

认识Pandas中的数据结构

上图为通过pandas读取数据集展示出来的数据,以此为例我们来讲解Pandas的核心概念,以及这些概念的层级关系:

  • DataFrame

    • Series

      • 索引列

        • 索引名、索引值

        • 索引下标、行号

      • 数据列

        • 列名

        • 列下标

        • 列值,具体的数据

其中最核心的就是Pandas中的两个数据结构:DataFrameSeries

Series对象

  • Series也是Pandas中的最基本的数据结构对象,下文中简称s对象;一般是DataFrame的列对象,series本身也具有行索引。

  • Series是一种类似于一维数组的对象,由下面两个部分组成:

    • values:一组数据(numpy.ndarray类型)

    • index:相关的数据行索引标签;如果没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引。

数据类型

Pandas的Series数据结构可以容纳多种数据类型,以下是一些常见的数据类型:

  1. 整数类型 (Integer Types)

    • int8, int16, int32, int64: 这些是Pandas支持的整数类型,根据数据的范围和内存使用情况进行选择。默认情况下,整数数据通常会被存储为int64

  2. 浮点类型 (Floating-Point Types)

    • float16, float32, float64: 这些是用于存储浮点数的类型,根据精度和内存需求来选择。默认情况下,浮点数数据通常会被存储为float64

  3. 对象类型 (Object Type)

    • object: 用于存储字符串、混合类型数据或Python对象。这是非常灵活的数据类型,但可能会降低某些操作的性能。

  4. 布尔类型 (Boolean Type)

    • bool: 用于存储布尔值(True或False)。

  5. 日期和时间类型 (Datetime Types)

    • datetime64[ns]: 用于存储日期和时间数据,精确到纳秒。Pandas提供了丰富的日期和时间处理功能。

创建Series对象

通过numpy.ndarray来创建
  • 自动生成索引

参考代码:

  import numpy as np
  import pandas as pd
  
  # 创建numpy.ndarray对象
  n1 = np.array([1, 2, 3])
  print(n1)
  print(type(n1))
  
  # 创建Series对象
  s1 = pd.Series(data=n1)
  print(s1)
  print(type(s1))
  
  # 输出结果如下:
  [1 2 3]
  <class 'numpy.ndarray'>
  0    1
  1    2
  2    3
  dtype: int64
  <class 'pandas.core.series.Series'>

上面的结果中,左边显示的0,1是Series的索引,默认为0,1,2,3...,下边的dtype:int64就是该Series对象中值的数据类型

指定索引:
import numpy as np
import pandas as pd

# 创建numpy.ndarray对象
n1 = np.array([1, 2, 3])

# 创建Series对象, 同时指定索引
s1 = pd.Series(data=n1, index=['A', 'B', 'C'])
print(s1)
print(type(s1))

# 输出结果如下:
A    1
B    2
C    3
dtype: int64
<class 'pandas.core.series.Series'>
通过list列表来创建
  • 如果传入的数据类型是统一的数字,那么最终的dtype类型是int64

  • 如果传入的数据类型是统一的字符串,那么最终的dtype类型是object

  • 如果传入的数据类型是多种类型,那么最终的dtype类型也是object

    • 参考代码

import pandas as pd

# 创建Series对象
s1 = pd.Series(['banana', 42])
print(s1)
s2 = pd.Series(['banana', 'apple'])
print(s2)
s3 = pd.Series([50, 42])
print(s3)
# 自定义索引
s4 = pd.Series(['小明', '男'], index=['Name', 'Gender'])
print(s4)

# 输出结果如下:
0    banana
1        42
dtype: object 
0    banana
1     apple
dtype: object
0    50
1    42
dtype: int64
Name      小明
Gender     男
dtype: object
通过字典或元组创建s对象
  • 参考代码

import pandas as pd

# 使用元组
tuple1 = (1, 2, 3)
s1 = pd.Series(tuple1)
print(s1)

# 使用字典 字典中的key值是Series对象的索引值,value值是Series对象的数据值
dict1 = {'A': 1, 'B': 2, 'C': 3}
s2 = pd.Series(dict1)
print(s2)

# 输出结果如下
0    1
1    2
2    3
dtype: int64
A    1
B    2
C    3
dtype: int64

Series对象常用属性和方法

  • 常见属性​

  • 属性说明
    loc使用索引值取子集
    iloc使用索引位置取子集
    dtype或dtypesSeries内容的类型
    TSeries的转置矩阵
    shape数据的维数
    sizeSeries中元素的数量
    valuesSeries的值
  • 常见方法

    方法说明
    append连接两个或多个Series
    corr计算与另一个Series的相关系数
    cov计算与另一个Series的协方差
    describe计算常见统计量
    drop_duplicates返回去重之后的Series
    equals判断两个Series是否相同
    get_values获取Series的值,作用与values属性相同
    hist绘制直方图
    isinSeries中是否包含某些值
    min返回最小值
    max返回最大值
    mean返回算术平均值
    median返回中位数
    mode返回众数
    quantile返回指定位置的分位数
    replace用指定值代替Series中的值
    sample返回Series的随机采样值
    sort_values对值进行排序
    to_frame把Series转换为DataFrame
    unique去重返回数组
    value_counts统计不同值数量
    keys获取索引值
    head查看前5个值
    tail查看后5个值

import pandas as pd

# 创建s对象
s1 = pd.Series(data=[1, 2, 3, 4, 2, 3], index=['A', 'B', 'C', 'D', 'E', 'F'])
print(s1)
print('=================== 常用属性 ===================')
# 查看s对象值数量,就是查看有多少行函数
print(s1.size)
# 查看s对象维度, 返回一个单个元素的元组, 元素个数代表维度数, 元素值代表值数量
# (行数,列数),由于s对象时一维的,只显示行数,如果以后使用DataFrame来调用,则是二维的,既有行,又有列
print(s1.shape)  # (6,)
# 查看s对象数据类型
print(s1.dtypes)
print(s1.dtype)

# 获取s对象的数据值, 返回numpy的ndarray数组类型
print(s1.values)  #   [1 2 3 4 2 3]  本质上是一个numpy 数组
print(type(s1.values))  #  <class 'numpy.ndarray'>

# 获取s对象的索引
# 前边是索引值,dtype是索引值类型,这里是字符串(object)
print(s1.index)  # Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')

print('=================== 常用方法 ===================')
# 查看s对象值数量
print(len(s1))
# 查看s对象前5个值, n默认等于5
print(s1.head())  # 查询前5行数据
print(s1.head(n=2))  # 设置查询前2行数据

# 查看s对象后5个值, n默认等于5
print(s1.tail())   # 查询后5行数据
print(s1.tail(n=2))  # 设置查询后2行数据
# 获取s对象的索引
print(s1.keys())   # Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
# s对象转换成python列表
print(s1.tolist())
print(s1.to_list())  # 作用同上
# s对象转换成DataFrame对象
print(s1.to_frame())
print(s1.to_frame().shape  # (6,1) 输出是一个二维信  表格有6行1列
# s对象中数据的基础统计信息
print(s1.describe())
"""
count: 数据集中的元素数量。在这里是6。
mean: 数据集的平均值。所有数值相加后除以数值的数量。在这里是2.5。
std: 数据集的标准差。它描述了数值相对于平均值的离散程度。在这里是1.048809。
min: 数据集中的最小值。在这里是1。
25%: 数据集的四分位数(或百分位数)的第25个值。它表示有25%的数据小于或等于这个值。在这里是2。
50%: 数据集的中位数。它表示有一半的数据小于这个值,另一半大于这个值。在这里是2.5。
75%: 数据集的四分位数(或百分位数)的第75个值。它表示有75%的数据小于或等于这个值。在这里是3。
max: 数据集中的最大值。在这里是4。
"""
# s对象最大值、最小值、平均值、求和值...
print(s1.max())
print(s1.min())
print(s1.mean())
print(s1.sum())
# s对象数据值去重, 返回s对象
print(s1.drop_duplicates())
      
# s对象数据值去重, 返回数组
print(s1.unique())
# s对象数据值排序, 默认升序
print(s1.sort_values(ascending=True))
# s对象索引值排序, 默认升序
print(s1.sort_index(ascending=False))
# s对象不同值的数量, 类似于分组计数操作
print(s1.value_counts())  # select 数字,count(*) from 表  group by 数字;

布尔值列表获取Series数据

scientists.csv数据集中,列出大于Age列的平均值的具体值,具体步骤如下:

有需要数据集资料的可以私信我

  • 加载并观察数据集

    import pandas as pd
    
    df = pd.read_csv('data/scientists.csv')
    print(df)
    # print(df.head())
    # 输出结果如下
                       Name        Born        Died  Age          Occupation
    0     Rosaline Franklin  1920-07-25  1958-04-16   37             Chemist
    1        William Gosset  1876-06-13  1937-10-16   61        Statistician
    2  Florence Nightingale  1820-05-12  1910-08-13   90               Nurse
    3           Marie Curie  1867-11-07  1934-07-04   66             Chemist
    4         Rachel Carson  1907-05-27  1964-04-14   56           Biologist
    5             John Snow  1813-03-15  1858-06-16   45           Physician
    6           Alan Turing  1912-06-23  1954-06-07   41  Computer Scientist
    7          Johann Gauss  1777-04-30  1855-02-23   77       Mathematicia
    计算Age列的平均值
  • # 获取一列数据 df[列名]
    ages = df['Age']
    print(ages)
    print(type(ages))
    print(ages.mean())
    
    # 输出结果如下
    0    37
    1    61
    2    90
    3    66
    4    56
    5    45
    6    41
    7    77
    Name: Age, dtype: int64
    <class 'pandas.core.series.Series'>
    59.125
    输出大于Age列的平均值的具体值
  • print(ages[ages > ages.mean()])
    
    # 输出结果如下
    1    61
    2    90
    3    66
    7    77
    Name: Age, dtype: int64

    在本例中,ages>ages.mean(),到底是什么?

    为什么ages[ages > ages.mean()]就能返回我们想要的结果?

 利用表达式 ages > ages.mean() ,获取布尔值构成的series对象
new_ages_s = ages > ages.mean()
print(new_ages_s) # series对象
print(new_ages_s.values)  # numpy的ndarray数据类型
print(list(new_ages_s.values))  # python的list数据类型

# 输出结果如下
0    False
1     True
2     True
3     True
4    False
5    False
6    False
7     True
Name: Age, dtype: bool
[False  True  True  True False False False  True]
[False, True, True, True, False, False, False, True]
从Series中获取部分数据,可以传入布尔值的列表
bool_list = list(new_ages_s.values) # 构造布尔值列表
print(ages[bool_list]) # 通过布尔索引来控制,输出指定范围

# 输出结果如下
1    61
2    90
3    66
7    77
Name: Age, dtype: int64

Series对象的运算

Series和数值型变量计算时,变量会与Series中的每个元素逐一进行计算;

两个Series之间计算时,索引值相同的元素之间会进行计算;索引值不同的元素的计算结果会用NaN值(缺失值)填充。

  • Series和数值型变量计算

  • # 加法
    print(ages + 10)
    # 乘法
    print(ages * 2)
    
    # 输出结果如下
    0     47
    1     71
    2    100
    3     76
    4     66
    5     55
    6     51
    7     87
    Name: Age, dtype: int64
    0     74
    1    122
    2    180
    3    132
    4    112
    5     90
    6     82
    7    154
    Name: Age, dtype: int64

    两个Series之间计算时,索引值相同的元素之间会进行计算;索引值不同的元素的计算结果会用NaN值(缺失值)填充

  • print(ages + ages)
    print('=' * 20)
    print(pd.Series([1, 100]))
    print('=' * 20)
    print(ages + pd.Series([1, 100]))
    
    # 输出结果如下
    0     74
    1    122
    2    180
    3    132
    4    112
    5     90
    6     82
    7    154
    Name: Age, dtype: int64
    ====================
    0      1
    1    100
    dtype: int64
    ====================
    0     38.0
    1    161.0
    2      NaN
    3      NaN
    4      NaN
    5      NaN
    6      NaN
    7      NaN
    dtype: float64

    DataFrame对象

    DataFrame是一个表格型的==结构化==数据结构,它含有一组或多组有序的列(Series),每列可以是不同的值类型(数值、字符串、布尔值等)。

    • DataFrame是Pandas中的最基本的数据结构对象,简称df;可以认为df就是一个二维数据表,这个表有行有列有索引

    • DataFrame是Pandas中最基本的数据结构,Series的许多属性和方法在DataFrame中也一样适用

    创建DataFrame对象

    DataFrame的创建有很多种方式:

    • Serires对象转换为df:上一小节中学习了s.to_frame()

    • 读取文件数据返回df:上一小节中我们使用了pd.read_csv('csv格式数据文件路径')的方式获取了df对象

    • 使用字典、列表、元组创建df

  • 使用字典加列表创建df

import pandas as pd

dict_data = {
    'id': [1, 2, 3],
    'name': ['张三', '李四', '王五'],
    'age': [18, 20, 22]
}
# 使用默认自增索引
# 字典中的key值是df对象的列名,value值是对应列的数据值
df1 = pd.DataFrame(data=dict_data)
print(df1)
print(type(df1))a
# 通过index参数指定索引, columns参数指定列的位置
df2 = pd.DataFrame(data=dict_data, index=['A', 'B', 'C'], columns=['id', 'age', 'name'])
print(df2)

# 输出结果如下
   id  name  age
0   1  张三   18
1   2  李四   20
2   3  王五   22
<class 'pandas.core.frame.DataFrame'>
   id  age  name
A   1   18  张三
B   2   20  李四
C   3   22  王五

使用列表加元组创建df,并自定义索引

list_data = [(1, '张三', 18),
             (2, '李四', 20),
             (3, '王五', 22)]
df3 = pd.DataFrame(data=list_data,
                   index=['A', 'B', 'C'],  # 手动指定索引
                   columns=['id', 'name', 'age'])  # 手动指定列名
print(df3)

# 输出结果如下
   id  name  age
A   1  张三   18
B   2  李四   20
C   3  王五   22

DataFrame对象常用属性和方法

DataFrame对象常用属性和方法与Series对象的几乎相同

import pandas as pd

# 加载数据集, 得到df对象
df = pd.read_csv('../data/scientists.csv')

print('=============== 常用属性 ===============')
# 查看维度, 返回元组类型 -> (行数, 列数), 元素个数代表维度数
print(df.shape)
# 查看数据值个数, 行数*列数, NaN值也算
print(df.size)
# 查看数据值, 返回numpy的ndarray类型
print(df.values)
# 查看维度数
print(df.ndim)
# 返回列名和列数据类型
print(df.dtypes)
# 查看索引值, 返回索引值对象
print(df.index)
# 查看列名, 返回列名对象
print(df.columns)
print('=============== 常用方法 ===============')
# 查看前5行数据
print(df.head())
# 查看后5行数据
print(df.tail())
# 查看df的基本信息
df.info()
# 查看df对象中所有数值列的描述统计信息
print(df.describe())
# 查看df对象中所有非数值列的描述统计信息
# exclude:不包含指定类型列
print(df.describe(exclude=['int', 'float']))
# 查看df对象中所有列的描述统计信息
# include:包含指定类型列, all代表所有类型
print(df.describe(include='all'))
# 查看df的行数
print(len(df))
# 查看df各列的最小值
print(df.min())
# 查看df各列的非空值个数
print(df.count())
# 查看df数值列的平均值
print(df.mean())

布尔值列表获取DataFrame对象中部分数据

  • 同Series一样,DataFrame也可以使用布尔值Series对象获取数据子集

# 加载数据集, 得到df对象
df = pd.read_csv('../data/scientists.csv')
print(df['Age'] > df['Age'].mean())
print(df[df['Age'] > df['Age'].mean()])

# 输出结果如下
0    False
1     True
2     True
3     True
4    False
5    False
6    False
7     True
Name: Age, dtype: bool
                   Name        Born        Died  Age     Occupation
1        William Gosset  1876-06-13  1937-10-16   61   Statistician
2  Florence Nightingale  1820-05-12  1910-08-13   90          Nurse
3           Marie Curie  1867-11-07  1934-07-04   66        Chemist
7          Johann Gauss  1777-04-30  1855-02-23   77  Mathematician

本质就是传入布尔值构成的列表,来获取部分数据,True所对应的数据会被保留

# 获取第1、2、4、8行数据
# 布尔值列表个数要和df的行数相同
bool_list = [True, True, False, True, False, False, False, True]
print(df[bool_list])

# 输出结果如下
                Name        Born        Died  Age     Occupation
0  Rosaline Franklin  1920-07-25  1958-04-16   37        Chemist
1     William Gosset  1876-06-13  1937-10-16   61   Statistician
3        Marie Curie  1867-11-07  1934-07-04   66        Chemist
7       Johann Gauss  1777-04-30  1855-02-23   77  Mathematician

DataFrame对象的运算

DataFrame和数值型变量计算时,变量会与DataFrame中的每个元素逐一进行计算,但df中存在非数值类型列时不能进行加减除运算

两个DataFrame之间、以及df和s对象进行计算时,索引值相同的行之间会进行计算;索引值不同的行的计算结果会用NaN值(缺失值)填充。

  • df和数值型变量计算

import pandas as pd

# 加载数据集, 得到df对象
df = pd.read_csv('../data/scientists.csv')
print(df * 2)
# print(df + 2)  # 报错,因为df2中有非数值类型的列
# 输出结果如下 数值类型列的值和数值变量正常运算, 非数值类型列的值重复拼接在一起

df之间进行运算

print(df + df)  # 输出结果和 df * 2 相同
# isin:判断df的索引值是否在values参数列表中, 返回布尔值的ndarray数据类型
print(df.index.isin(values=[0, 2, 4]))
df2 = df[df.index.isin(values=[0, 2, 4])]
print(df2)
print(df + df2)

总结

Pandas中的API太多,千万不要尝试去记忆,你记不住的,要求有印象、能找到、能看懂

  • 理解类知识点

    • dataframe和series对象是什么:

      • 可以认为df是有行有列有索引的二维数据表

      • df和s是Pandas中最核心的数据结构

      • df中每一列或者每一行都是s对象

      • s对象也有索引

      • 每一个s对象都有各自的数据类型,表示构成这个s对象中的值的type;常用的数据类型有

        • Object -- 字符串

        • int -- 整数

        • float -- 小数

  • series和dataframe的API

# <s/df>表示s对象或df对象
<s/df>.size # 返回数据个数
<s/df>.shape # s返回(行数,),df返回(行数,列数)
<s/df>.dtypes # s返回数据类型,df返回列名和该列数据的类型
<s/df>.values # 返回全部值
<s/df>.index # 查看索引
<s/df>.head() # s返回前5个数据,df返回前5行数据
<s/df>.tail() # s返回后5个数据,df返回后5行数据
df.info() # 返回df的基本信息:索引情况,以及各列的名称、数据数量、数据类型;s对象没有这个函数
<s/df>.describe() # 返回s或df对象中所有数值类型数据的基础统计信息
df.describe(include='all') # 返回df对象中全部列数据的基础统计信息
  • series以及dataframe的运算

    • 当s或df和数值进行运算时,每一个具体的值会分别和数值进行运算,但s或df中的数据存在非数值类型时不能做加减除法运算

    • 两个s之间、两个df之间,以及df和s对象进行计算,会根据索引的值进行对应计算,当两个对象的索引值不能对应时,不匹配的会返回NaN

  • 判断表达式

    • s对象的判断表达式返回由布尔值构成的numpy.ndarray数组

    • 布尔值列表或数组获取s或df对象中部分数据的方法:返回True对应的(行)数据

标签:索引,python,series,s1,dataframe,df,对象,Series,print
From: https://blog.csdn.net/m0_74051333/article/details/139496759

相关文章

  • 探索 CSV 模块:Python 中 CSV 数据持久化的最佳实践
    ......
  • Python-datetime
    importdatetimeprint("獲取當前時間和日期:",datetime.datetime.now())UtcNow=datetime.datetime.utcnow()print("獲取當前時間和日期的世界標準時間:",UtcNow)print("獲取日期:",UtcNow.date())print("獲取年:",UtcNow.year)print("獲取月:",Ut......
  • Python-GEE遥感云大数据分析、管理与可视化及多领域案例教程
    原文链接:Python-GEE遥感云大数据分析、管理与可视化及多领域案例教程https://mp.weixin.qq.com/s?__biz=MzUzNTczMDMxMg==&mid=2247606139&idx=3&sn=2b98c8d5c99878ce78c8fade559bdae5&chksm=fa821e9ccdf5978a7e63a1d514f2a643158a595fa75ac751c5ca477692bbc84e993245b342df&to......
  • 【Python Cookbook】S01E22 替换文本 re.sub(),re.subn() 以及 回调函数
    目录问题解决方案讨论问题如果我们想要对字符串中的文本做替换,该如何办?解决方案针对简单的文本模式,我们直接使用字符串内置方法str.replace()函数即可。text="Ileaveamessageforyou."print(text.replace('leave','left'))结果:Ileftamessagefor......
  • 【python】 文件操作
    【2024/6/6】文件刪除保持【解決】一般删除文件时使用os库,然后利用os.remove(path)即可完成删除,如果删除空文件夹则可使用os.removedirs(path)即可,但是如果需要删除整个文件夹,且文件夹非空时使用os.removedirs(path)就会报错了,此时可以使用shutil库,该库为python内置库,是一个对......
  • python 基础习题5 --- 海龟画图系列
    1.  画出一个半径为100的圆,背景色和画笔颜色自己定义,如下图:importturtleastt.speed(10)t.bgcolor("black")t.pencolor("red")t.pensize(2)radius=100t.penup()t.goto(0,-100)t.down()t.circle(radius)t.penup()t.done()答案 2. 用循环画出五个同......
  • 00-macOS和Linux安装和管理多个Python版本
    在Mac上安装多个Python版本可通过几种不同方法实现。1Homebrew1.1安装Homebrew若安装过,跳过该步。/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"1.2安装Python如安装Python3.7:[email protected]......
  • python SQLite3 库
    sqlite3是一个python中内置数据库,执行时会在本地文件夹中创建一个数据库   importsqlite3#连接到数据库,如果数据库不存在,则会被创建conn=sqlite3.connect('example.db')#创建一个cursor对象cursor=conn.cursor()#创建表格的SQL命令create_table_query......
  • 【Python机器学习】无监督学习——不同类型的预处理
    之前学习过,一些算法(比如神经网络和SVM)对数据缩放非常敏感。因此,通常的做法是对特征进行调节,使数据更适合于这些算法。通常来说,这是对数据的一种简单的按照特征的缩放和移动。举例:importmglearn.plotsimportmatplotlib.pyplotaspltmglearn.plots.plot_scaling()plt.sh......
  • 【爬虫+数据清洗+数据可视化】Python分析“淄博烧烤”热门事件-全流程附源码
    目录一、背景介绍二、爬虫代码2.1展示爬取结果2.2爬虫代码讲解三、可视化代码3.1读取数据3.2数据清洗3.3可视化3.3.1IP属地分析-柱形图3.3.2评论时间分析-折线图3.3.3点赞数分布-箱线图3.3.4评论内容-情感分布饼图3.3.5评论内容-词云图四、技术总结五、演示视频六、转载......