pandas数据合并秘籍:concat、join、append三大法宝助你轻松搞定数据整合
2024-01-15 07:11:42
大家好,我是Peter,欢迎来到我的数据分析之旅。今天,我们继续来聊聊pandas中的数据合并操作。在上一篇文章中,我们已经介绍了pandas中最常用的一个合并函数merge的使用。今天,我们就来认识一下另外3个与合并操作相关的函数:concat、join和append。这三个函数虽然功能相似,但各有特色,让我们一起来看看它们的区别和用法吧!
concat:简单粗暴的合并利器
concat函数是pandas中使用最为简单的一个合并函数。它的语法格式如下:
pd.concat([df1, df2, ...], axis=0, ignore_index=True)
其中,df1、df2等是要合并的数据框,axis参数指定合并的方向,0表示按行合并,1表示按列合并,ignore_index参数指定是否忽略合并后的索引。
concat函数的使用非常简单,我们来看一个例子:
import pandas as pd
df1 = pd.DataFrame({'Name': ['John', 'Mary', 'Bob'], 'Age': [20, 25, 30]})
df2 = pd.DataFrame({'Name': ['Alice', 'Bob', 'Carol'], 'Age': [22, 35, 28]})
df_concat = pd.concat([df1, df2], ignore_index=True)
print(df_concat)
输出结果如下:
Name Age
0 John 20
1 Mary 25
2 Bob 30
3 Alice 22
4 Bob 35
5 Carol 28
可以看到,concat函数将两个数据框按行合并在一起,并且忽略了合并后的索引。
join:灵活多变的合并王者
join函数是pandas中最为灵活的一个合并函数。它的语法格式如下:
df1.join(df2, on=None, how='inner', lsuffix='_left', rsuffix='_right')
其中,df1和df2是要合并的数据框,on参数指定合并的键,how参数指定合并的方式,inner表示只保留在两个数据框中都存在的行,left表示只保留在df1中存在的行,right表示只保留在df2中存在的行,outer表示保留两个数据框中的所有行,lsuffix和rsuffix参数指定合并后左右数据框列名的后缀。
join函数的使用稍微复杂一些,我们还是来看一个例子:
import pandas as pd
df1 = pd.DataFrame({'Name': ['John', 'Mary', 'Bob'], 'Age': [20, 25, 30]})
df2 = pd.DataFrame({'Name': ['Alice', 'Bob', 'Carol'], 'Age': [22, 35, 28], 'City': ['New York', 'London', 'Paris']})
df_join = df1.join(df2, on='Name', how='inner')
print(df_join)
输出结果如下:
Name Age City
0 John 20 NaN
1 Mary 25 NaN
2 Bob 30 London
可以看到,join函数将两个数据框按Name列合并在一起,并且只保留在两个数据框中都存在的行。
append:简单实用的追加助手
append函数是pandas中使用最为简单的一个追加函数。它的语法格式如下:
df1.append(df2, ignore_index=True)
其中,df1和df2是要追加的数据框,ignore_index参数指定是否忽略追加后的索引。
append函数的使用非常简单,我们来看一个例子:
import pandas as pd
df1 = pd.DataFrame({'Name': ['John', 'Mary', 'Bob'], 'Age': [20, 25, 30]})
df2 = pd.DataFrame({'Name': ['Alice', 'Bob', 'Carol'], 'Age': [22, 35, 28]})
df_append = df1.append(df2, ignore_index=True)
print(df_append)
输出结果如下:
Name Age
0 John 20
1 Mary 25
2 Bob 30
3 Alice 22
4 Bob 35
5 Carol 28
可以看到,append函数将两个数据框按行追加在一起,并且忽略了追加后的索引。
总结
concat、join和append是pandas中最为常用的三个数据合并函数。它们各有特色,适用不同的场景。concat函数简单粗暴,join函数灵活多变,append函数简单实用。希望大家能够熟练掌握这三个函数,在数据分析工作中游刃有余!