zoukankan      html  css  js  c++  java
  • pandas数据增删改查+拼接

    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
  • 相关阅读:
    显示等待WebDriverWait+EC
    mac 上查看python3的各种安装路径
    layui弹窗全屏显示
    Mysql 一些细节方面解析(一)--MyISAM和InnoDB的主要区别和应用场景
    命令关闭tomcat
    xml 写sql语句文件头
    mysql update 修改多个字段and的语法问题
    zookeeper安装
    Java 基础--移位运算符
    SQL mybatis动态查询小结
  • 原文地址:https://www.cnblogs.com/hahahu/p/12848931.html
Copyright © 2011-2022 走看看