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