python pandas dataframe 的按列或者按行合并

concat 与其说是连接,更准确的说是拼接。就是把两个表直接合在一起。于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis 。
函数的具体参数是:

concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verigy_integrity=False)

objs 是需要拼接的对象集合,一般为列表或者字典
axis=0 是行拼接,拼接之后行数增加,列数也根据join来定,join=’outer’时,列数是两表并集。同理join=’inner’,列数是两表交集。
在默认情况下,axis=0为纵向,按行拼接,此时有

concat([df1,df2]) 等价于 df1.append(df2)

在axis=1 时为横向拼接 ,此时有

concat([df1,df2],axis=1) 等价于 merge(df1,df2,left_index=True,right_index=True,how='outer')

原文:https://blog.csdn.net/qq_30718387/article/details/72152461

详细参数参考:https://blog.csdn.net/zzpdbk/article/details/79232661

注:
一,concat:沿着一条轴,将多个对象堆叠到一起
concat方法相当于数据库中的全连接(union all),它不仅可以指定连接的方式(outer join或inner join)还可以指定按照某个轴进行连接。与数据库不同的是,它不会去重,但是可以使用drop_duplicates方法达到去重的效果。

二,
merge:通过键拼接列

  类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来。该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面。

详细简绍:https://www.jianshu.com/p/3ed379a2f846

三,
join:主要用于索引上的合并。

原文:https://blog.csdn.net/gdkyxy2013/article/details/80785361(文章较好)

四,使用apply函数实现group by 分组拼接。
python pandas dataframe 的按列或者按行合并_第1张图片
最后4行合并为1行:

def ab(df):
return','.join(df.values)

df = df.groupby(['股票代码','股票简称'])['所属概念'].apply(ab)
df = df.reset_index()

python pandas dataframe 的按列或者按行合并_第2张图片

你可能感兴趣的:(python pandas dataframe 的按列或者按行合并)