0Pricing
Python Academy · 课时

Series 与 DataFrame 基础

从各种来源创建并检查 Pandas 数据结构。

Series 与 DataFrame 基础 是 CoddyKit 上的免费 Python Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

什么是 Pandas?

Pandas 提供 Series(一维带标签数组)和 DataFrame(二维带标签表格)。它构建于 NumPy 之上,并针对数据分析进行了优化。

import pandas as pd

s = pd.Series([10, 20, 30], index=["a","b","c"])
print(s)
# a    10
# b    20
# c    30

创建 Series

可以从列表、字典或标量创建 Series。索引默认为从零开始的整数。

import pandas as pd

# From list:
s1 = pd.Series([1, 2, 3])

# From dict (keys become index):
s2 = pd.Series({"x": 10, "y": 20})

# Scalar (broadcast):
s3 = pd.Series(5, index=range(4))
print(s3)   # 0 5 / 1 5 / 2 5 / 3 5

创建 DataFrame

可以从列表字典、字典列表或 NumPy 数组创建 DataFrame。

import pandas as pd

df = pd.DataFrame({
    "name": ["Alice","Bob","Carol"],
    "age":  [30, 25, 35],
    "score":[95.5, 87.0, 92.3]
})
print(df)

基本检查

head()、tail()、shape、dtypes、info() 和 describe() 是处理任何新数据集时的第一步。

import pandas as pd

df = pd.read_csv("data.csv")
print(df.head())       # first 5 rows
print(df.shape)        # (rows, cols)
print(df.dtypes)       # column types
print(df.describe())   # count, mean, std, min...

列访问

可以使用点表示法或方括号访问列。对于包含空格的列名,或与 DataFrame 属性冲突的列名,点表示法会失效。

import pandas as pd

df = pd.DataFrame({"age":[30,25], "city":["NY","LA"]})
print(df["age"])       # preferred
print(df.age)          # also works if name is simple
print(df[["age","city"]])  # multiple columns

索引基础

索引用于标记行。默认值为 0、1、2……,但也可以设置为任何可哈希值。

import pandas as pd

df = pd.DataFrame({"val":[10,20,30]}, index=["a","b","c"])
print(df.loc["b"])     # row with label b
print(df.index)        # Index(['a','b','c'])

# Reset to default integer index:
df.reset_index(drop=True, inplace=True)

添加和删除列

为新键赋值即可添加列。使用 drop() 删除列。

import pandas as pd

df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]})
df["c"] = df["a"] + df["b"]   # new column
df.drop(columns=["b"], inplace=True)
print(df)

Series 对齐

合并 Series 时,Pandas 会根据索引进行对齐。找不到匹配项时会产生 NaN。

import pandas as pd

s1 = pd.Series([1,2,3], index=["a","b","c"])
s2 = pd.Series([10,20], index=["b","c"])
print(s1 + s2)
# a     NaN
# b    12.0
# c    23.0

to_dict 和 to_list

将 DataFrame 或 Series 转换回标准的 Python 数据结构,以便导出或检查。

import pandas as pd

df = pd.DataFrame({"x":[1,2],"y":[3,4]})
print(df.to_dict("records"))
# [{'x': 1, 'y': 3}, {'x': 2, 'y': 4}]

print(df["x"].to_list())
# [1, 2]

读取文件

Pandas 可以直接将 CSV、Excel、JSON、Parquet 和 SQL 数据读取到 DataFrames 中。

import pandas as pd

df_csv    = pd.read_csv("data.csv")
df_excel  = pd.read_excel("data.xlsx", sheet_name="Sheet1")
df_json   = pd.read_json("data.json")
df_parq   = pd.read_parquet("data.parquet")
# pd.read_sql("SELECT * FROM table", conn)

写入文件

将 DataFrames 导出为 CSV、Excel、JSON 和 Parquet。

import pandas as pd

df = pd.DataFrame({"a":[1,2],"b":[3,4]})
df.to_csv("out.csv", index=False)
df.to_json("out.json", orient="records")
df.to_parquet("out.parquet")

快速检查

df.describe() 返回什么?

回顾

Series 是一维带标签数组;DataFrame 是二维带标签表格。使用 df["col"] 访问列。使用 head()、describe() 和 info() 快速检查数据。使用内置函数读写 CSV、Excel、JSON 和 Parquet。

常见问题解答

「Series 与 DataFrame 基础」课时是免费的吗?

是的 — 「Series 与 DataFrame 基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「Series 与 DataFrame 基础」这节课中我会学到什么?

从各种来源创建并检查 Pandas 数据结构。 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「Series 与 DataFrame 基础」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Series 与 DataFrame 基础
  2. 索引、筛选与布尔掩码
  3. GroupBy、聚合与数据透视表
  4. 合并、连接与数据清洗
← 返回 Python Academy