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.0to_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 反馈 — 无需本地设置。
此课程中的所有课时
- Series 与 DataFrame 基础
- 索引、筛选与布尔掩码
- GroupBy、聚合与数据透视表
- 合并、连接与数据清洗