pandas(三)

2023-01-31 00:01:44 pandas

合并数据集:

  创建一个能创建dataframe的函数

  def make_data(cols,ind):

    data={c:[strc(c)+str(i) for i in ind] 

      for c in cols}

    return pd.DataFrame(data,ind)

   make_data('ABC',range(3))

 

一维数组

ser1 = pd.Series(['a','b','c'],index=[1,2,3])

ser2 = pd.Series(['d','e','f'],index=[4,5,6])

pd.concat([ser1,ser2])  

 

二维数组

df1 = make_data('ab',[1,2])

df2 = make_data('ab',[3,4])

pd.concat([df1,df2])  默认逐行合并axis=0(上下合并)

 

pandas 在合并索引时会保留索引,即使是重复的

 

触发索引重复异常:

veriy_integrity参数可以触发索引重复异常

try:

  pd.concat([x,y],verify_integrity=True)

except  ValueError as e:

  print('v')

 

忽略索引重复异常:

ignore_index可以实现忽略原先索引重新创建一个整数索引

   

当列名有相同也有不相同时

join,join_axes

join默认参数是outer 取两个数组的并集

inner指取两个数组的交集

 

append效果和concat相同

df1.append(df2)

 

重复列名 suffixes

df8 = pd.DataFrame({'name':['a','b','c'],'rank':[1,2,3]})

df9 = pd.DataFrame({'name':['a','b','c'],'rank':[4,5,6]})

pd.merge(df8,df9,on='name',suffixes=['_L','_R'])

merge效果和concat相同,on表示以name这一列为基础合并,suffixes表示将相同的两列区分

 

 

 

  

相关文章