Pandas 是一个开源的 Python 数据分析库,它提供了快速、灵活且富有表现力的数据结构,旨在使“关系”或“标记”数据的工作既简单又直观。在 Pandas 中,DataFrame 是一个二维标签数据结构,能够以各种不同的形式存储数据,并且提供了丰富的数据操作功能。
DataFrame:Pandas 中的一个核心数据结构,类似于 Excel 表格或 SQL 表,但功能更强大。
合并(Merge):将两个 DataFrame 按照一定的规则组合在一起,通常基于某些列的值。
Pandas 提供了多种合并方式,主要包括:
合并操作在数据分析中非常常见,例如:
假设我们有两个 DataFrame df1
和 df2
,我们可以使用 merge()
函数来合并它们。
import pandas as pd
# 创建示例 DataFrame
df1 = pd.DataFrame({
'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]
})
df2 = pd.DataFrame({
'key': ['B', 'D', 'E', 'F'],
'value': [5, 6, 7, 8]
})
# 内连接
inner_join_df = pd.merge(df1, df2, on='key', how='inner')
print("内连接结果:\n", inner_join_df)
# 左连接
left_join_df = pd.merge(df1, df2, on='key', how='left')
print("左连接结果:\n", left_join_df)
# 右连接
right_join_df = pd.merge(df1, df2, on='key', how='right')
print("右连接结果:\n", right_join_df)
# 外连接
outer_join_df = pd.merge(df1, df2, on='key', how='outer')
print("外连接结果:\n", outer_join_df)
问题:合并时出现重复键
如果两个 DataFrame 中有相同的键值,且该键值对应的行不止一行,合并时会出现重复。
解决方法:
drop_duplicates()
方法去除重复行。df1 = df1.drop_duplicates(subset='key')
df2 = df2.drop_duplicates(subset='key')
问题:合并后的 DataFrame 中出现 NaN
这通常是因为合并时某些键在另一个 DataFrame 中不存在。
解决方法:
fillna()
方法填充 NaN 值。merged_df = merged_df.fillna(0) # 用 0 填充 NaN
通过以上方法,可以有效地解决合并 DataFrame 时可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云