AI闪电战:代码+实战 从Python速通到深度学习|数据处理与分析——Pandas1

想要查看本系列的其他文章请到作者主页中。
学习提示:在有别的编程基础之上,学习Python很简单,只是语法不同,所以有很多新的语法记不住也没关系,不用专门耗时间死记,实战的时候现用现查就行。
下面的介绍中是每个部分最常用的语法,基本能够应付绝大多数的情况,如果希望学习更详细的内容,可以参考每个部分给出的资料链接。

AI闪电战:代码+实战 从Python速通到深度学习|数据处理与分析——Pandas1


1. 数据创建

1.1 创建空的DataFrame

内容引入:

Pandas库中的DataFrame是用于存储和处理表格数据的核心数据结构。在数据分析的最初阶段,通常会创建空的DataFrame,之后逐步添加数据或从文件中加载数据。这在动态构建数据时非常有用。

常用语法:
import pandas as pd

# 创建一个空的DataFrame
df_empty = pd.DataFrame()

# 查看空DataFrame
print(df_empty)
要点总结:
  • pd.DataFrame() 可以创建一个空的DataFrame。
  • 空的DataFrame没有任何数据行或列,显示时是空表。
练习:
  1. 创建一个空的DataFrame,并尝试添加一列名为"Name"的空列。
答案:
import pandas as pd

# 创建一个空的DataFrame
df_empty = pd.DataFrame()

# 添加一列名为 "Name" 的空列
df_empty['Name'] = []

print(df_empty)
更详细的知识点学习链接:

Pandas官方文档: DataFrame


1.2 从字典创建DataFrame

内容引入:

从字典创建DataFrame是Pandas非常常见的操作之一,尤其适合将键值对的数据转换为表格形式。字典中的键会成为DataFrame的列名,而值则会成为相应列的数据。

常用语法:
import pandas as pd

# 从字典创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df_from_dict = pd.DataFrame(data)

# 查看DataFrame
print(df_from_dict)
要点总结:
  • 使用字典创建DataFrame时,字典的键会成为列名,值为对应列的数据。
  • 确保所有列长度一致,否则会抛出错误。
练习:
  1. 使用包含更多信息的字典来创建一个DataFrame,比如加入 Gender 列,并查看结果。
答案:
import pandas as pd

# 从包含更多信息的字典创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago'],
    'Gender': ['Female', 'Male', 'Male']
}

df_from_dict = pd.DataFrame(data)

# 查看DataFrame
print(df_from_dict)
更详细的知识点学习链接:

Pandas官方文档: DataFrame从字典创建


1.3 从列表创建DataFrame

内容引入:

在许多情况下,我们会从列表数据中构建DataFrame,尤其是在处理二维数据时,例如矩阵或嵌套列表。列表中的每个元素通常代表DataFrame的一行数据。

常用语法:
import pandas as pd

# 从嵌套列表创建DataFrame
data = [
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]

# 指定列名
columns = ['Name', 'Age', 'City']

df_from_list = pd.DataFrame(data, columns=columns)

# 查看DataFrame
print(df_from_list)
要点总结:
  • 从列表创建DataFrame时,可以将每个子列表作为DataFrame的一行数据。
  • 使用 columns 参数指定列名,否则会自动分配数值型索引。
练习:
  1. 创建一个包含 NameScore 列的DataFrame,数据来自嵌套列表。
答案:
import pandas as pd

# 从嵌套列表创建DataFrame
data = [
    ['Alice', 85],
    ['Bob', 90],
    ['Charlie', 95]
]

# 指定列名
columns = ['Name', 'Score']

df_from_list = pd.DataFrame(data, columns=columns)

# 查看DataFrame
print(df_from_list)
更详细的知识点学习链接:

Pandas官方文档: DataFrame从列表创建


1.4 从NumPy数组创建DataFrame

内容引入:

Pandas与NumPy库无缝结合,很多时候我们需要将NumPy数组转换为DataFrame进行进一步处理。尤其是当你用NumPy进行矩阵或数值运算时,将结果转换为DataFrame可以更方便地分析和处理数据。

常用语法:
import pandas as pd
import numpy as np

# 创建NumPy数组
arr = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

# 从NumPy数组创建DataFrame
df_from_array = pd.DataFrame(arr, columns=['A', 'B', 'C'])

# 查看DataFrame
print(df_from_array)
要点总结:
  • NumPy数组与Pandas兼容,可以直接转换为DataFrame。
  • 通过 columns 参数可以指定列名,若不指定则默认生成数值索引。
练习:
  1. 创建一个 2x3 的NumPy数组,并将其转换为DataFrame,同时为其指定列名 XYZ
答案:
import pandas as pd
import numpy as np

# 创建2x3的NumPy数组
arr = np.array([
    [10, 20, 30],
    [40, 50, 60]
])

# 从NumPy数组创建DataFrame
df_from_array = pd.DataFrame(arr, columns=['X', 'Y', 'Z'])

# 查看DataFrame
print(df_from_array)
更详细的知识点学习链接:

Pandas官方文档: DataFrame从NumPy数组创建


1.5 要点总结

  • 空DataFrame:可以使用 pd.DataFrame() 创建,并逐步添加数据。
  • 从字典创建:字典的键作为列名,值作为列数据。
  • 从列表创建:使用嵌套列表创建DataFrame,通常每个子列表代表一行数据。
  • 从NumPy数组创建:NumPy数组可以直接转换为DataFrame,适合数值计算后的数据展示。

1.6 练习与答案

练习:
  1. 创建一个字典,包含 ProductPrice 两列,并使用该字典创建DataFrame。
  2. 从嵌套列表创建一个包含 CityPopulation 的DataFrame。
  3. 创建一个NumPy数组表示 3x3 的矩阵,并将其转换为DataFrame,列名为 X1X2X3
答案:
import pandas as pd
import numpy as np

# 1. 从字典创建DataFrame
data = {'Product': ['Apple', 'Banana', 'Orange'], 'Price': [1.2, 0.5, 0.8]}
df1 = pd.DataFrame(data)
print(df1)

# 2. 从嵌套列表创建DataFrame
data = [['New York', 8419600], ['Los Angeles', 3980400], ['Chicago', 2716000]]
df2 = pd.DataFrame(data, columns=['City', 'Population'])
print(df2)

# 3. 从NumPy数组创建DataFrame
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df3 = pd.DataFrame(arr, columns=['X1', 'X2', 'X3'])
print(df3)

1.7 更详细的知识点学习链接


好的!我们接下来完善 2. 数据类型 这一部分,每个小节都会包含内容引入、常用语法、要点总结、练习与答案以及更详细的知识点学习链接。所有代码示例都包含独立数据和导入库。


2. 数据类型

2.1 内容引入:

在数据分析过程中,不同的列通常具有不同的数据类型,如整型、浮点型、字符串、日期等。正确识别和处理这些数据类型,对于分析、计算和数据处理非常重要。Pandas 提供了丰富的函数用于检查、转换和处理数据类型,帮助我们更好地管理数据。


2.2 常用语法

2.2.1 检查数据类型
内容引入:

当我们加载数据或创建DataFrame时,了解每一列的数据类型是很重要的。Pandas 提供了 dtypes 属性用于查看每列的数据类型。

常用语法:
import pandas as pd

# 创建一个示例DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Score': [88.5, 92.0, 79.5]
}

df = pd.DataFrame(data)

# 检查DataFrame每一列的数据类型
print(df.dtypes)
要点总结:
  • dtypes 属性可以用来查看DataFrame中每列的具体数据类型,如 int64float64object(字符串)。
  • Pandas中的 object 数据类型通常表示字符串或混合类型。
练习:
  1. 创建一个包含日期、字符串、整数列的DataFrame,并检查各列的数据类型。
答案:
import pandas as pd

# 创建一个包含不同类型数据的DataFrame
data = {
    'Date': pd.to_datetime(['2023-01-01', '2023-01-02', '2023-01-03']),
    'City': ['New York', 'Los Angeles', 'Chicago'],
    'Population': [8419600, 3980400, 2716000]
}

df = pd.DataFrame(data)

# 检查每一列的数据类型
print(df.dtypes)

特别说明
pd.to_datetime 主要用于将字符串、列表、元组、字典、Series 或 DataFrame 中的日期时间数据转换为 datetime64[ns] 类型。datetime64[ns] 是 Pandas 中用于表示日期时间的标准数据类型,具有高精度和丰富的日期时间操作功能。

更详细的知识点学习链接:

Pandas官方文档: dtypes


2.2.2 转换数据类型
内容引入:

有时我们可能需要将一列的数据类型从一种类型转换为另一种,比如将字符串转换为数值,或将整数转换为浮点型。这在进行数值计算或进行数据清洗时非常常见。

常用语法:
import pandas as pd

# 创建一个示例DataFrame
data = {
    'ID': ['001', '002', '003'],
    'Price': ['10.5', '20.0', '15.75']
}

df = pd.DataFrame(data)

# 将 "Price" 列从字符串转换为浮点型
df['Price'] = df['Price'].astype(float)

# 查看转换后的数据类型
print(df.dtypes)
要点总结:
  • astype() 方法可以用来转换数据类型。
  • 常见转换包括将字符串转换为数值型 (intfloat),或者将数值型转换为字符串。
  • 在进行转换前,确保数据格式正确,否则可能会引发错误。
练习:
  1. 将包含日期的字符串列转换为 datetime 类型。
答案:
import pandas as pd

# 创建一个包含日期字符串的DataFrame
data = {
    'Event': ['Launch', 'Meeting', 'Conference'],
    'Date': ['2024-01-01', '2024-02-15', '2024-03-10']
}

df = pd.DataFrame(data)

# 将 "Date" 列转换为 datetime 类型
df['Date'] = pd.to_datetime(df['Date'])

# 查看转换后的数据类型
print(df.dtypes)
更详细的知识点学习链接:

Pandas官方文档: astype


2.2.3 查看特定列的数据类型
内容引入:

有时我们只需要检查某一列的数据类型,而不需要查看整个DataFrame。这可以通过访问列后使用 dtype 属性来实现。

常用语法:
import pandas as pd

# 创建一个示例DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Score': [88.5, 92.0, 79.5]
}

df = pd.DataFrame(data)

# 查看特定列的数据类型
print(df['Age'].dtype)
要点总结:
  • 通过 df['column_name'].dtype 可以检查某一特定列的数据类型。
  • 这在你只关心某列数据类型时非常有用,而不需要查看整个DataFrame的类型信息。
练习:
  1. 创建一个包含三个不同数据类型列的DataFrame,并检查某一特定列的数据类型。
答案:
import pandas as pd

# 创建一个包含不同数据类型的DataFrame
data = {
    'City': ['New York', 'Los Angeles', 'Chicago'],
    'Established': [1624, 1781, 1833],
    'Is_Metropolis': [True, True, True]
}

df = pd.DataFrame(data)

# 查看 "Established" 列的数据类型
print(df['Established'].dtype)
更详细的知识点学习链接:

Pandas官方文档: dtype


2.3 要点总结

  • 检查数据类型:使用 dtypes 可以查看DataFrame中每一列的数据类型。
  • 转换数据类型:使用 astype() 可以将列的数据类型转换为其他类型,如 intfloatdatetime
  • 查看特定列的数据类型:可以使用 df['column_name'].dtype 查看某一列的具体数据类型。

2.4 练习与答案

练习:
  1. 创建一个包含整数、浮点数和字符串列的DataFrame,并使用 dtypes 检查其数据类型。
  2. 将一个包含数字字符串的列转换为数值类型。
  3. 创建一个DataFrame,包含时间列并将其转换为 datetime 类型。
答案:
import pandas as pd

# 1. 创建包含整数、浮点数和字符串列的DataFrame
data = {
    'ID': [1, 2, 3],
    'Height': [5.7, 6.0, 5.8],
    'Name': ['Alice', 'Bob', 'Charlie']
}

df = pd.DataFrame(data)
print(df.dtypes)

# 2. 将数字字符串转换为数值类型
data = {
    'ID': ['001', '002', '003'],
    'Price': ['12.5', '15.0', '10.75']
}

df = pd.DataFrame(data)
df['Price'] = df['Price'].astype(float)
print(df.dtypes)

# 3. 创建包含时间列的DataFrame并转换为 datetime 类型
data = {
    'Event': ['Launch', 'Meeting', 'Conference'],
    'Date': ['2024-01-01', '2024-02-15', '2024-03-10']
}

df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date'])
print(df.dtypes)

2.5 更详细的知识点学习链接


3. 数据读取与写入

3.1 从CSV, Excel读取数据

内容引入:

在数据分析中,我们经常需要从外部文件中读取数据,比如CSV文件和Excel文件。Pandas 提供了简单的方法来读取这类数据并将其加载为DataFrame。

常用语法:
import pandas as pd

# 从CSV文件读取数据
df_csv = pd.read_csv('example.csv')

# 从Excel文件读取数据
df_excel = pd.read_excel('example.xlsx')

# 查看数据前5行
print(df_csv.head())
print(df_excel.head())
要点总结:
  • pd.read_csv() 用于读取CSV文件,并将其转换为DataFrame。
  • pd.read_excel() 用于读取Excel文件。需要安装 openpyxlxlrd 库支持Excel文件读取。
  • head() 方法可以用于查看DataFrame的前几行数据,默认为前5行。
练习:
  1. 创建一个CSV和一个Excel文件,分别使用 pd.read_csv()pd.read_excel() 读取文件中的数据,并查看前几行。
答案:
import pandas as pd

# 读取CSV文件
df_csv = pd.read_csv('data.csv')
print(df_csv.head())

# 读取Excel文件
df_excel = pd.read_excel('data.xlsx')
print(df_excel.head())
更详细的知识点学习链接:

3.2 将数据写入CSV, Excel文件

内容引入:

数据处理和分析完成后,通常我们需要将结果保存为文件以供后续使用。Pandas 提供了 to_csv()to_excel() 方法,用于将DataFrame数据写入CSV或Excel文件。

常用语法:
import pandas as pd

# 创建示例DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Score': [88.5, 92.0, 79.5]
}
df = pd.DataFrame(data)

# 将DataFrame写入CSV文件
df.to_csv('output.csv', index=False)

# 将DataFrame写入Excel文件
df.to_excel('output.xlsx', index=False)

print("数据已保存到文件中。")
要点总结:
  • to_csv() 方法可以将DataFrame数据写入CSV文件。参数 index=False 用于避免将索引写入文件。
  • to_excel() 方法用于将DataFrame写入Excel文件。使用此方法前确保安装 openpyxl 库。
练习:
  1. 创建一个包含名字、分数和年龄的DataFrame,并将其写入一个CSV和一个Excel文件中。
答案:
import pandas as pd

# 创建示例DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Score': [88.5, 92.0, 79.5]
}
df = pd.DataFrame(data)

# 写入CSV文件
df.to_csv('students.csv', index=False)

# 写入Excel文件
df.to_excel('students.xlsx', index=False)

print("数据已成功写入CSV和Excel文件中。")
更详细的知识点学习链接:

3.3 处理不同格式的数据文件(如JSON等)

内容引入:

除了CSV和Excel文件,Pandas 还能处理许多其他数据文件格式,如JSON、HTML等。这为数据的灵活处理提供了更多选择。

常用语法:
import pandas as pd

# 从JSON文件读取数据
df_json = pd.read_json('example.json')

# 查看DataFrame
print(df_json.head())

# 将DataFrame写入JSON文件
df_json.to_json('output.json', orient='records', lines=True)

print("数据已保存为JSON文件。")
要点总结:
  • pd.read_json() 用于从JSON文件中读取数据并转换为DataFrame。
  • to_json() 可以将DataFrame写入JSON文件。参数 orientlines 可以用来调整输出格式。
练习:
  1. 从一个JSON文件中读取数据,并将其转换为DataFrame。然后将DataFrame写入另一个JSON文件。
答案:
import pandas as pd

# 读取JSON文件
df = pd.read_json('data.json')
print(df.head())

# 写入新的JSON文件
df.to_json('output.json', orient='records', lines=True)
print("数据已成功保存为JSON文件。")
更详细的知识点学习链接:

3.4 要点总结

  • 读取数据pd.read_csv()pd.read_excel() 分别用于从CSV和Excel文件中读取数据。pd.read_json() 可以读取JSON文件。
  • 写入数据to_csv()to_excel() 分别用于将数据写入CSV和Excel文件。to_json() 用于保存JSON格式数据。
  • 文件处理灵活性:Pandas 支持多种数据文件格式的读写操作,包括CSV、Excel、JSON等,方便数据的导入与导出。

3.5 练习与答案

练习:
  1. 从一个CSV文件中读取数据,并将其保存为一个新的CSV文件。
  2. 从一个Excel文件中读取数据,并将其保存为一个新的Excel文件。
  3. 读取一个JSON文件的数据,并将其写入一个新的JSON文件中。
答案:
import pandas as pd

# 1. 从CSV文件读取并写入新CSV文件
df_csv = pd.read_csv('input.csv')
df_csv.to_csv('output.csv', index=False)

# 2. 从Excel文件读取并写入新Excel文件
df_excel = pd.read_excel('input.xlsx')
df_excel.to_excel('output.xlsx', index=False)

# 3. 从JSON文件读取并写入新JSON文件
df_json = pd.read_json('input.json')
df_json.to_json('output.json', orient='records', lines=True)

print("数据已成功读取并保存到新文件中。")

3.6 更详细的知识点学习链接


问题解答
由于本系列是基础教程,所以有任何问题基本上国内免费的AI模型都能回答,有任何疑问或Bug可以寻求以下免费的大模型的解答。

  • 豆包:https://www.doubao.com/chat/
  • 文心一言:https://yiyan.baidu.com/
  • 通义千问:https://tongyi.aliyun.com/qianwen/
  • 讯飞星火:https://xinghuo.xfyun.cn/desk

如果觉得有帮助的话,求 关注、收藏、点赞、星星 哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能技术小白修炼手册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值