文章目录
- Pandas数值计算
- 简单的数值计算
- 二元统计
- 对象操作
- Series的增删改查
- DataFrame的增删改查
Pandas数值计算
简单的数值计算
- 构建一个DataFrame成绩表
import pandas as pd
df = pd.DataFrame([[90,98,95],[92,96,93]],index = ['小明','小刚'],columns = ['语文','数学','英语'])
df
- 求和sum()函数
#按列求和(sum默认axis=0)
df.sum()
df.sum(axis=0)
#按行求和
df.sum(axis=0)
df.sum(axis = 'columns')
- 最大最小值,均值等
#最大值,最小值
df.min()
df.max()
#平均值
df.mean()
df.mean(axis=1)
#中位数
df.median()
二元统计
- 统计特征与特征之间的关系
- 统计Titanic.csv文件的协方差
#读取数据
df = pd.read_csv('./data/titanic.csv')
df.head()
- 统计协方差
df.cov()
- 统计特征系数
df.corr()
- 根据列的值统计个数(默认降序)
#截图为部分数据
df['Age'].value_counts()
#升序
df['Age'].value_counts(ascending = True)
#分组
df['Age'].value_counts(ascending = True,bins = 5)
- 统计一列中不为0的个数
df['Pclass'].count()
#输出
891
对象操作
Series的增删改查
- 构建一个Series结构
#构建Series结构,对其进行增删改查操作
import pandas as pd
data = [1,2,3]
index = ['a','b','c']
s = pd.Series(data = data,index = index)
- 查询操作
s[0]
#输出
1
s[0:2]
#输出
a 1
c 3
dtype: int64
s.loc['b']
#输出
2
s.iloc[2]
#输出
3
#布尔类型
mask=[True,False,True]
s[mask]
#输出
a 1
c 3
dtype: int64
- 修改操作
#使用copy函数
s_new = s.copy()
s_new['a'] = 10
s_new
#输出
a 10
b 2
c 3
dtype: int64
#使用replace函数
#直接打印
s_new.replace(to_replace = 10,value = 11,inplace = False)
#赋值之后打印
s_new.replace(to_replace = 10,value = 11,inplace = True)
s_new
#输出
a 11
b 2
c 3
dtype: int64
#修改索引
#打印索引
s_new.index
#输出
Index(['a', 'b', 'c'], dtype='object')
#修改全部索引
s_new.index = ['c','b','a']
s_new
#输出
c 11
b 2
a 3
dtype: int64
#rename函数修改一个索引
s_new.rename(index = {'c':'C'},inplace = True)
s_new
#输出
C 11
b 2
a 3
dtype: int64
- 增加操作
#构建新的series
data = [100,110]
index = ['x','y']
s0 = pd.Series(data = data,index = index)
s0
#输出
x 100
y 110
dtype: int64
#将s0添加到之前的s_new中
s1 = s_new.append(s0)
s1
#输出
C 11
b 2
a 3
x 100
y 110
dtype: int64
#增加一个索引和值(与numpy操作基本相同)
s1['z'] = 200
s1
#输出
C 11
b 2
a 3
x 100
y 110
z 200
dtype: int64
#是否保留原来索引?
s1 = s_new.append(s0,ignore_index=False)
s1 = s_new.append(s0,ignore_index=True)
- 删除操作
#del函数删除
del s1['C']
s1
#输出
b 2
a 3
x 100
y 110
z 200
dtype: int64
#drop批量删除
s1.drop(['b','a'],inplace = True)
s1
#输出
x 100
y 110
z 200
dtype: int64
DataFrame的增删改查
- 构建DataFrame结构
data = [[1,2,3],[4,5,6]]
index = ['a','b']
columns = ['A','B','C']
df = pd.DataFrame(data=data,index=index,columns = columns)
df
- 查询操作
df['A']
#输出
a 1
b 4
Name: A, dtype: int64
df.iloc[0]
#输出
A 1
B 2
C 3
Name: a, dtype: int64
df.loc['a']
#输出
A 1
B 2
C 3
Name: a, dtype: int64
- 修改操作
df.loc['a']['A']
#输出
1
#修改定位到的数据值
df.loc['a']['A'] = 10
df
#修改索引值
df.index = ['x','y']
df
- 增加操作
#增加一行
df.loc['z'] = [7,8,9]
df
#重新构建一个DataFrame。使用concat函数添加(默认为行添加)
data = [[1,2,3],[4,5,6]]
index = ['i','j']
columns = ['A','B','C']
df_new = pd.DataFrame(data=data,index=index,columns = columns)
df_new
df1 = pd.concat([df,df_new],axis = 0)
df1
#添加一列
df_new['D'] = [10,11]
df_new
#构建一个新的DataFrame,使用concat进行列添加。
df3 = pd.concat([df_new,df2],axis = 1)
df3
- 删除操作
#删除一行
df3.drop(['j'],axis=0,inplace = True)
df3
#删除一列
del df3['D']
#删除多列
df3.drop(['A','B','C'],axis = 1,inplace = True)
df3
本博客所有实验环境参照Anaconda3 jupyter notebook