目录
1. Series详解
1.1 创建Series
1)方法一:传入一个Python列表
s=pd.series(['banana',42)]
print(s)
输出的结果会显示其行标签,默认是0,1,2,3...
2)方法二:创建时用index参数指定行标签
s=pd.Series(['Tom',19],index=['name','age'])
print(S)
切记此时行标签个数必须和Python列表个数一致
1.2 Series常用操作
常用属性和方法:
属性或方法 | 说明 |
s.shape | 查看Series数据的形状 |
s.size | 查看Series的个数 |
s.index | 获取Series数据的行标签 |
s.values | 获取Series数据的元素值 |
s.keys() | 与s.index效果相同 |
s.loc[] | 根据行标签获取Series中的某个元素数据 |
s.iloc[] | 根据行位置获取Series中的某个元素数据 |
s.dtypes | 查看Series数据元素的类型 |
常用统计方法:
方法 | 说明 |
s.mean() | 计算Series数据中元素的平均值 |
s.max() | 计算Series数据中元素的最大值 |
s.min() | 计算Series数据中元素的最小值 |
s.std() | 计算Series数据中元素的标准差 |
s.value_counts() | 统计Series数据中不同元素的个数 |
s.count() | 统计Series数据中非空元素的个数 |
s.describe() | 显示Series数据中元素的各种统计值 |
1.3 bool索引
我们可以从Series获取bool索引为True的位置对应的数据。
#从student_score表中求出大于平均分的数值
#首先求出其bool索引
student_score>student_score.mean()
#利用bool索引获取大于平均分的数值,即bool索引是True的位置对应的数据
studet_score[student_score>student_score.mean()]
1.4 Series运算
- Series和数值型数据运算:Series每个元素和该数值逐一运算,返回新的Series
- Series和Series运算:两个Series数据相同行标签的元素分别运算,如果不存在相同行标签,计算结果为NaN,最终也会返回新的Series
2. DataFrame详解
2.1 创建DataFrame
1)使用字典创建DataFrame
students=pd.DataFrame({'name':['Tom','Bob'],
'age':[18,19],
'score':[85,89]})
students
2)创建时用index指定行标签,用columns指定列的排序
students=pd.DataFrame({'name':['Tom','Bob'],
'age':[18,19],
'score':[85,89]},
columns=['age','name','score'],
index=['student1','student2])
students
3)也可以使用嵌套列表创建DataFrame
students=pd.DataFrame([['Tom','Bob'],
[18,19],
[85,89]],
index=['name','age','score'],
columns=['student1','student2'])
students
2.2 DataFrame常用操作
属性或方法 | 说明 |
df.shape | 查看DataFrame数据的形状 |
df.size | 查看DataFrame数据元素的总个数 |
df.ndim | 查看DataFrame数据的维度 |
len(df) | 获取DataFrame数据的行数 |
df.index | 获取DataFrame数据的行标签 |
df.columns | 获取DataFrame数据的列标签 |
df.dtypes | 查看DataFrame每列数据元素的类型 |
df.info() | 查看DataFrame每列的结构 |
df.head(n) | 获取DataFrame的前n行数据,默认n=5 |
df.tail(n) | 获取DataFrame的后n行数据,默认n=5 |
常用统计方法:
方法 | 说明 |
s.max() | 计算DataFrame数据中每列元素的最大值 |
s.min() | 计算DataFrame数据每列元素的最小值 |
s.count() | 统计数据中每列非空元素的个数 |
s.describe() | 显示DataFrame数据中每列数据的各种统计值 |
注意:describe方法默认显示数值型列的统计信息,如果想显示非数值型列的统计信息可以设置include参数(使用include参数前需要导入numpy包)
import numpy as np
students.describe(include=[np.object_])
2.3 bool索引
与Series类似,我们可以从DataFrame获取bool索引为True的位置对应的行数据。
#从students表中求出score列中大于平均分的数值
#首先求出其bool索引
students>students.mean()
#利用bool索引获取大于平均分的数值所在列的数据
studets[students>students.mean()]
2.4 DataFrame运算
- DataFrame和数值型数据运算:DataFrame每个元素和该数值逐一运算,返回新的DataFrame 字符串*2即为字符串变成两遍
- DataFrame和DataFrame运算:两个DataFrame数据相同行标签和相同列标签的元素分别运算,如果不存在相同行标签或列标签,计算结果为NaN,最终也会返回新的DataFrame
2.5 行标签和列标签操作
1)标签重置的方法:df.reset_index()
reset_index返回值是一个新的DataFrame
2)加载数据时指定某列作为数据的行标签:参数 index_col
3)加载数据后,修改行标签和列标签:
- 方法一:修改后返回一个新的DataFrame
df.rename(index={'原行标签名':'新行标签名',...},columns={'原列标签名':'新列标签名',...})
- 方法二:直接对原DataFrame修改
df.index=['新行标签名1','新行标签名2',...]
df.columns=['新列标签名1','新列标签名2',...]