Pandas 数据合并的基础知识
在本文中,我们将介绍Pandas库中数据合并的基础知识。数据合并是数据分析的一个关键步骤,只有合并好了数据,我们才能更好地探索数据,发现数据背后的规律。
Pandas库提供了几种数据合并方法。常用的有merge()、join()、concat()等方法。
阅读更多:Pandas 教程
merge()方法
merge()方法是Pandas库中最基本的数据合并方法。它可以将两个DataFrame按照指定的列进行合并,类似于SQL中的join操作。merge()方法的基本语法为:
pd.merge(df1, df2, on='key')
其中,参数df1和df2是需要合并的两个DataFrame;参数on指定按照哪一列进行合并。例如,我们有两个DataFrame,一个是学生信息表,包含学生ID和姓名两列;另一个是成绩表,包含学生ID和成绩两列。我们可以按照学生ID列将两个表进行合并:
import pandas as pd
# 学生信息表
stu_info = pd.DataFrame({'ID': ['001', '002', '003', '004'],
'Name': ['Tom', 'Jerry', 'Merry', 'Lucy']})
# 成绩表
score = pd.DataFrame({'ID': ['001', '002', '003', '005'],
'Score': [90, 80, 70, 60]})
# 按照ID列合并两个表
result = pd.merge(stu_info, score, on='ID')
print(result)
运行上述代码,我们可以得到以下合并结果:
ID Name Score
0 001 Tom 90
1 002 Jerry 80
2 003 Merry 70
除了按照一列进行合并外,merge()方法还可以按照多列进行合并,例如:
result = pd.merge(stu_info, score, on=['ID', 'Name'])
这样,只有在ID和Name两列都匹配的情况下,才会将两个表进行合并。
如果需要按照某一列进行左连接、右连接或者外连接等高级操作,可以使用merge()方法的how参数,例如:
result = pd.merge(stu_info, score, on='ID', how='outer')
这将进行外连接,将两个表中所有的数据都进行合并。其他how参数包括’left’、’right’和’inner’等。
join()方法
join()方法也可以用来合并两个DataFrame,它相当于merge()方法的简化版,只需要指定一个DataFrame和一个Series,然后指定按照哪一列进行合并。例如:
result = stu_info.set_index('ID').join(score.set_index('ID'), how='inner')
这样,我们可以将学生信息表和成绩表按照ID列进行合并。
concat()方法
concat()方法可以将多个DataFrame按照一定的轴进行拼接。例如,我们有以下三个DataFrame:
import pandas as pd
df1 = pd.DataFrame({'A': ['A1', 'A2', 'A3', 'A4'],
'B': ['B1', 'B2', 'B3', 'B4'],
'C': ['C1', 'C2', 'C3', 'C4']})
df2 = pd.DataFrame({'A': ['A5', 'A6', 'A7', 'A8'],
'B': ['B5', 'B6', 'B7', 'B8'],
'C': ['C5', 'C6', 'C7', 'C8']})
df3 = pd.DataFrame({'A': ['A9', 'A10', 'A11', 'A12'],
'B': ['B9', 'B10', 'B11', 'B12'],
'C': ['C9', 'C10', 'C11', 'C12']})
将它们按照列进行拼接:
result = pd.concat([df1, df2, df3], axis=1)
这里,参数axis指定按照列进行拼接。
总结
以上就是Pandas库中数据合并的基础知识。merge()方法是最基本的数据合并方法,可以进行高级操作;join()方法是merge()方法的简化版,适用于两个DataFrame的合并;concat()方法可以将多个DataFrame按照一定的轴进行拼接。在实际应用中,我们需要根据数据的具体情况选择合适的合并方法。
极客笔记