importpandasaspd#创建两个DataFramedf1=pd.DataFrame({"A":["A0","A1"],"B":["B0","B1"]},index=[0,1])df2=pd.DataFrame({"A":["A2","A3"],"B":["B2","B3"]},index=[2,3])#纵向合并DataFrameresult=pd.concat([df1,df2])print(result)Output:
importpandasaspd#创建两个DataFramedf1=pd.DataFrame({"A":["A0","A1"],"B":["B0","B1"]})df2=pd.DataFrame({"C":["C0","C1"],"D":["D0","D1"]})#横向合并DataFrameresult=pd.concat([df1,df2],axis=1)print(result)Output:
在使用concat()函数时,处理索引是一个重要的方面。如果不同的DataFrame有重叠的索引,可能会导致数据的不一致。可以通过设置ignore_index参数来避免这种情况。
importpandasaspd#创建两个DataFramedf1=pd.DataFrame({"A":["A0","A1"],"B":["B0","B1"]})df2=pd.DataFrame({"A":["A2","A3"],"B":["B2","B3"]})#忽略原索引,创建新的整数索引result=pd.concat([df1,df2],ignore_index=True)print(result)Output:
importpandasaspd#创建两个DataFramedf1=pd.DataFrame({"A":["A0","A1"],"B":["B0","B1"]})df2=pd.DataFrame({"A":["A2","A3"],"B":["B2","B3"]})#添加多层索引result=pd.concat([df1,df2],keys=["df1","df2"])print(result)Output:
当合并的DataFrame列不一致时,concat()函数提供了多种处理方式。通过join参数可以控制如何合并列。
importpandasaspd#创建两个DataFramedf1=pd.DataFrame({"A":["A0","A1"],"B":["B0","B1"]})df2=pd.DataFrame({"A":["A2","A3"],"C":["C2","C3"]})#只合并共有的列result=pd.concat([df1,df2],join="inner")print(result)Output:
importpandasaspd#创建两个DataFramedf1=pd.DataFrame({"A":["A0","A1"],"B":["B0","B1"]})df2=pd.DataFrame({"A":["A2","A3"],"C":["C2","C3"]})#合并所有的列,不存在的填充NaNresult=pd.concat([df1,df2],join="outer")print(result)Output:
在实际应用中,我们可能会遇到更复杂的数据合并需求,比如合并多个DataFrame,处理多层索引等。
importpandasaspd#创建三个DataFramedf1=pd.DataFrame({"A":["A0","A1"],"B":["B0","B1"]})df2=pd.DataFrame({"A":["A2","A3"],"B":["B2","B3"]})df3=pd.DataFrame({"A":["A4","A5"],"B":["B4","B5"]})#合并三个DataFrameresult=pd.concat([df1,df2,df3])print(result)Output:
Pandas的concat()函数是一个非常强大的工具,可以帮助我们在不同的场景下合并数据。通过正确使用axis,join,ignore_index等参数,我们可以处理各种复杂的数据合并需求。