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

 

posted on 2020-05-08 10:22  汩汩-咕咚  阅读(280)  评论(0编辑  收藏  举报