pandas数据的拼接+增删改查

def lengthways_joint(df,df1):      #纵向拼接
if list(df.columns) == list(df1.columns):
leb_joint = pd.concat([df, df1], axis=0, join='inner',ignore_index= True)
return leb_joint def crosswise_joint(df1,df2,param1='',param2=''): #横向拼接
if param1=='' or param2 =='':
cro_joint = pd.concat((df1, df2), axis=1, join='outer')
elif df1[param1].dtypes == df2[param2].dtypes:
df2.rename(columns={param2: param1}, inplace=True) #将df2的列名替换掉
cro_joint = pd.merge(df1, df2, on=param1, how='outer') #将2组数据以列名合并
return cro_joint

#增加数据
def add_data(data,adn,lis='', row_column=0,all_out=0): #row_column = 0代表增加列,row_column = 1代表增加行,data原始数据 adn添加的列名,lis要添加的数据 all_out=0全外列拼接
if row_column == 0: #添加列
dic = {adn:lis}
dt = pd.DataFrame(dic)
if all_out == 0: #全外拼接
data1 = pd.concat([data, dt], axis=0,ignore_index=True)
else: #非全外拼接
data1 = data.join(dt,lsuffix='_caller')
elif row_column == 1: #添加行
val = pd.Series(lis, index=data.columns)
data.loc[len(data)] = val
data1 = data
return data1 #删除数据
def dl_data(data,adn,ll=0):
if ll == 0: #删除列
data.dropna(axis=1, how='all') # 删除全为Nan的列
data.dropna(axis=1, how='any') # 删除带有Nan的列
data.drop(adn, axis=1) # 删除多列
elif ll == 1: #删除行
data.drop(adn) # 删除012行
data.dropna() # 删除带有Nan的行
data.dropna(axis=0, how='all') # 删除全为Nan的行
data.dropna(axis=0, how='any') # 删除带有Nan的行 默认选项为此 #更改数据
def chag_data(data,adn,lis='',row_column=0): #adn要改的列或行索引
if row_column == 0: #改列
val = pd.Series(lis)
data[adn] = val #将debt列改成数据,val数据多长改多长,最长就是数据长度
elif row_column == 1:#改行
val = pd.Series(lis, index=data.columns)
data.loc[adn] = val #将第0行改成数据 长度一样长
return data #查找数据
def find_data(data,fdn,lis): #fdn查找的行条件,lis查找的列条件,均为列表的形式
df = data.loc[fdn:,lis] # DataFrame类型 多列查找
return df

最新文章

  1. Linux SVN 搭建(YUM)安装
  2. uva10167 Birthday Cake
  3. C#交互功能的演化
  4. poj-3259-wormholes-spfa-判负环
  5. NC V6 安装目录各文件夹作用描述
  6. CodeForces 614B Gena's Code
  7. spring的Convert机制
  8. 实体框架(Entity Frmaework)简介
  9. LEDE 虚拟机安装
  10. DS18B20初上电显示85℃问题
  11. 关于element-ui表格table设置header-cell-class-name样式不起作用的原因分析
  12. 检查URL的可用性脚本
  13. Appium下载安装及环境配置
  14. 加快maven中jar包的下载速度,maven镜像收集
  15. .NET Core开发日志——HttpContext
  16. 信号滤波模块verilog代码---UNLOCK,LOCK状态机方式
  17. 廖雪峰Python学习笔记——类和实例
  18. 阿里云centos7.4安装并部署svn1.10.0版本(配置多仓库,加入开机自启动)
  19. Installing .NET Core on Ubuntu-摘自网络
  20. XAMPP启动mysql问题

热门文章

  1. Yocto Project Mega-Manual 英文版 (2020官方最新合并版575页),Yocto官方文档中文版,Yocto官方文档英文版
  2. win10格式化U盘提示没有权限执行此操作
  3. Google在线深度学习神器Colab——科研角色
  4. 35.Linux 性能监控常用命令
  5. Android-AccessibilityService
  6. leetcode 94. 二叉树的中序遍历【时间击败99.19%】 【内存击败39.48%】
  7. tomcat 2 - 默认连接器精简版
  8. 软件离线许可(License)实现原理
  9. Vue全局方法配置
  10. spider_requests库简单ip代理