看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
加载完数据后,我们需要需要对数据的全貌有所了解,比如有多少行,多少列,有哪些字段,索引是什么等等。
df = pd.read_excel('https://gairuo.com/file/data/team.xlsx')
s = df.Q1 # 取其中一列,形成 Series
df.head() # 查看前五条数据
'''
name team Q1 Q2 Q3 Q4
0 Liver E 89 21 24 64
1 Arry C 36 37 37 57
2 Ack A 57 60 18 84
3 Eorge C 93 96 71 78
4 Oah D 65 49 61 86
'''
其他:
df.head(10) # 查看前10条数据
df.tail() # 查看后五条数据
df.tail(10) # 查看后10条数据
df.sample() # 随机查看一条数据
df.sample(3) # 随机查看3条数据
df.sample(10, ignore_index=True) # 随机后重置索引
df.shape
会返回一个数组,第一个代表行数,第二个代表列数,这就是这个数据的基本形状,也是数据的大小。
df.shape
# (100, 6)
# 共 100 行,6列 (索引不算)
# Series 只有一个值
s.shape
# (100,)
df.info()
显示有数据类型、索引情况、行列数、各字段数据类型、内存占用等。Series 不支持。
df.info()
'''
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 100 entries, 0 to 99
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 100 non-null object
1 team 100 non-null object
2 Q1 100 non-null int64
3 Q2 100 non-null int64
4 Q3 100 non-null int64
5 Q4 100 non-null int64
dtypes: int64(4), object(2)
memory usage: 4.8+ KB
'''
会返回每个字段的数据类型。
df.dtypes
'''
name object
team object
Q1 int64
Q2 int64
Q3 int64
Q4 int64
dtype: object
'''
如果是 Series 需要用 s.dtype
s.dtype
# dtype('int64')
会返回一个列内容和行内容组成的列表 [列索引, 行索引]。
df.axes
'''
[RangeIndex(start=0, stop=100, step=1),
Index(['name', 'team', 'Q1', 'Q2', 'Q3', 'Q4'], dtype='object')]
'''
Series 只显示列索引,就是它的索引:
s.axes
# [RangeIndex(start=0, stop=100, step=1)]
注:以下信息操作,DataFrame 和 Series 一般都支持。
# 索引对象
df.index
# RangeIndex(start=0, stop=100, step=1)
# 列索引,Series 不支持
df.columns
# Index(['name', 'team', 'Q1', 'Q2', 'Q3', 'Q4'], dtype='object')
df.values # 建议使用 to_numpy()
df.to_numpy() # numpy array(<所有值的列表矩阵>)
df.ndim # 2 维度数
df.size # 600 行x列的总数,就是总共有多少数据
# 是否为空,注意有空值不认为是空
df.empty # False
# Series 的索引, DataFrame 的列名
dfs.keys()
# 返回第一个非NA/空值的索引
df.first_valid_index() # 0
# 返回最后一个非NA/空值的索引
df.last_valid_index() # 99
# 数据的标记信息(目前只支持是否重复标签)pd 1.2.0+
df.flags
# <Flags(allows_duplicate_labels=True)>
# 设置元信息,可用于数据基础信息描述
df.attrs={'info': '学生成绩表'}
# 查看元信息
df.attrs # {'info': '学生成绩表'}
# 标签是否允许重复
df.flags["allows_duplicate_labels"]
df.flags.allows_duplicate_labels # True
df.set_flags(allows_duplicate_labels=False) # 设置
此外 Series 独有的如下:
s.name # 'Q1'
s.array # 值组成的数组 <PandasArray>
s.dtype # 类型,dtype('int64')
s.hasnans # False 是否有空
.name
可获取索引的名称,需要区分的是上例数据中 df.name
也能正常执行,它其实是 df 调用数据字段的方法,因为正好有名为 name 的列,如果没有就会报错,DataFrame 是没有此属性的。
更新时间:2024-08-13 09:50:25 标签:pandas 数据