Python科学计算之Pandas数值计算与对象的增删改查

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中使用pandas库进行数据库的增删改查操作是不准确的,因为pandas主要用于数据分析与处理,不是专门针对数据库操作的库。如果你想要操作数据库,可以使用其他专门的库,如SQLAlchemy或者pyodbc。 下面是一个使用SQLAlchemy库进行数据库增删改查的示例: 1. 首先,安装SQLAlchemy库: ``` pip install sqlalchemy ``` 2. 导入必要的库和模块: ```python from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base ``` 3. 创建数据库连接和会话: ```python engine = create_engine('数据库连接字符串') Session = sessionmaker(bind=engine) session = Session() ``` 其中,'数据库连接字符串'需要根据你所使用的数据库类型和配置进行相应的设置。 4. 创建数据库表的映射类: ```python Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer) ``` 这里创建了一个名为User的映射类,对应数据库中的users表。 5. 插入数据: ```python user = User(name='Alice', age=25) session.add(user) session.commit() ``` 通过创建User类的实例,并通过session.add()方法添加到会话中,最后通过session.commit()方法提交更改,即可将数据插入到数据库中。 6. 查询数据: ```python users = session.query(User).all() for user in users: print(user.name, user.age) ``` 通过session.query()方法查询User表中的所有数据,并通过.all()方法将结果以列表形式返回。然后可以对查询结果进行遍历操作。 7. 更新数据: ```python user = session.query(User).filter_by(name='Alice').first() user.age = 30 session.commit() ``` 通过session.query().filter_by()方法筛选特定数据,并通过.first()方法获取第一个匹配结果。然后可以对该对象的属性进行修改,最后通过session.commit()方法提交更改。 8. 删除数据: ```python user = session.query(User).filter_by(name='Alice').first() session.delete(user) session.commit() ``` 通过session.query().filter_by()方法筛选特定数据,并通过.first()方法获取第一个匹配结果。然后通过session.delete()方法删除对象,最后通过session.commit()方法提交更改。 这样就可以使用SQLAlchemy库进行数据库的增删改查操作了。当然,具体的操作还需要根据你所使用的数据库类型和具体业务需求进行适当调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值