merge和concat

2020-06-21  本文已影响0人  李涛AT北京

merge

通过pandas或DataFrame的merge方法,可以进行两个DataFrame的连接,这种连接类似于SQL中对两张表进行的join连接。

import pandas as pd
import numpy as np

df1 = pd.DataFrame([[1, 2, 3], [3, 4, 5], [5, 6, 7],[7,8,9]], columns=['a', 'b', 'c'])
df2 = pd.DataFrame([[1, 2, 4], [10, 4, 6], [3, 8, 12],[5,5,5]], columns=['a', 'b', 'c'], index=[1,2,3,4])
df3 = pd.DataFrame([[1, 2, 4], [10, 4, 6], [3, 8, 12],[5,5,5]], columns=['d', 'e', 'f'], index=[1,2,3,4])
display(df1, df2, df3)


# 根据所有同名字段(标签名)进行等值连接。
# print(df1.merge(df2, how='left',on='a'))
pd.merge(df1,df2,how='left',on='a')

# 当列名不一样的时候,可以使用索引拼接数据
pd.merge(df1,df3,how='left',left_index=True, right_index=True)

concat

我们可以通过DataFrame或Series类型的concat方法,来进行连接操作,连接时,会根据索引进行对齐。

# 在进行concat拼接(堆叠),时,会根据索引进行对齐。如果无法对齐,会产生空值。(NaN)
pd.concat((df1, df3),join='outer', axis=1)

# 相同的列名,按竖直方向堆叠
pd.concat((df1, df2),join='outer', axis=0, ignore_index=True)

上一篇 下一篇

猜你喜欢

热点阅读