欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

pandas(三)

程序员文章站 2022-07-04 23:20:08
合并数据集: 创建一个能创建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' ......

合并数据集:

  创建一个能创建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表示将相同的两列区分