锋哥原创的Pandas2 Python数据处理与分析 视频教程:
2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

DataFrame是一个二维表格型数据结构。每列可以是不同的值类型,既有行索引index,也有列索引columns,可以看成是由Series组成的字典。
DataFrame创建基本格式:
df = pd.DataFrame(data=None, index=None, columns=None)
参数说明:
-
data:具体数据,结构化或同构的ndarray、可迭代对象、字典或DataFrame。
-
index:索引,类似数组的对象,支持解包,如果没有指定,会 自动生成RangeIndex (0, 1, 2, ..., n)。
-
columns:列索引、表头,如果没有指定,会自动生成 RangeIndex (0, 1, 2, ..., n)。
实际开发,我们还是从数据文件(如Excel,CSV)中读取数据。不过,了解这些知识可以让我们更好的掌握DataFrame数据机制。
使用字典方式定义DataFrame
示例:
import pandas as pd
d = {'学号': [1, 2, 3],
'姓名': ['张三', '李四', '王五'],
'语文': [99, 88, 77],
'数学': [44, 55, 55],
'英语': [88, 55, 66]}
df = pd.DataFrame(d)
print(df)
print(df.dtypes)
print(df.columns) # 列索引
print(df.index) # 行索引
运行输出:
学号 姓名 语文 数学 英语
0 1 张三 99 44 88
1 2 李四 88 55 55
2 3 王五 77 55 66
学号 int64
姓名 object
语文 int64
数学 int64
英语 int64
dtype: object
Index(['学号', '姓名', '语文', '数学', '英语'], dtype='object')
RangeIndex(start=0, stop=3, step=1)
从DataFrame中查询Series
如果只查询一行或者一列,返回的就是Series对象,如果查询的是多行,多列,返回的还是DataFrame。
print(df['姓名'], type(df['姓名'])) # 查询一列,返回Series
print(df['姓名'][1])
print(df[['姓名', '语文']], type(df[['姓名', '语文']])) # 查询两列,返回DataFrame
print(df.loc[1], type(df.loc[1])) # 查询一行,返回Series
print(df.loc[1]['姓名'], df.loc[1]['语文'])
print(df.loc[[0, 2]], type(df.loc[[0, 2]])) # 查询多行,返回DataFrame
print(df.loc[1:2]) # 查询多行,支持切片
运行结果:
**********查询数据****************
0 张三
1 李四
2 王五
Name: 姓名, dtype: object <class 'pandas.core.series.Series'>
李四
姓名 语文
0 张三 99
1 李四 88
2 王五 77 <class 'pandas.core.frame.DataFrame'>
学号 2
姓名 李四
语文 88
数学 55
英语 55
Name: 1, dtype: object <class 'pandas.core.series.Series'>
李四 88
学号 姓名 语文 数学 英语
0 1 张三 99 44 88
2 3 王五 77 55 66 <class 'pandas.core.frame.DataFrame'>
学号 姓名 语文 数学 英语
1 2 李四 88 55 55
2 3 王五 77 55 66