Pandas学习总结——5. 合并(append与assign、combine与update、concat、merge与join)
文件大小:
154k
资源说明:内容概览1 append与assign1.1append方法1.2 assign方法2 combine与update2.1 combine方法2.2 update方法3 concat方法4 merge与join4.1 merge函数4.2 join函数5 问题与练习5.1 问题5.2 练习练习一:公司员工信息练习二:课程分数表
Pandas的合并操作可以概括为以下四类方法:
append与assign
combine与update
concat方法
merge与join
1 append与assign
1.1append方法
append方法主要在行操作
用Series添加行,必须指定name
在Pandas数据处理中,合并数据是至关重要的操作,它能帮助我们整合来自不同源的信息。本篇文章将探讨五种不同的合并方式:append与assign、combine与update、concat以及merge与join。
1. **append与assign**
- **append方法** 主要是用于向DataFrame追加行。当你有一个Series或另一个DataFrame,并希望将其添加到现有的DataFrame底部时,可以使用此方法。例如,创建一个Series并指定name属性,然后使用`append()`方法将其添加到DataFrame中。同样,也可以直接将一个DataFrame附加到另一个DataFrame的底部。
```python
df_append = df.loc[:3,['Gender','Height']].copy()
s = pd.Series({'Gender':'F','Height':188},name='new_row')
df_append.append(s)
df_temp = pd.DataFrame({'Gender':['F','M'],'Height':[188,176]},index=['new_1','new_2'])
df_append.append(df_temp)
```
- **assign方法** 则用于在现有DataFrame上创建新的列。通过指定列名和值,或者使用lambda表达式,可以方便地在原有数据基础上添加新列,且自动进行索引对齐。
```python
s = pd.Series(list('abcd'),index=range(4))
df_append.assign(Letter=s)
df_append.assign(col1=lambda x:x['Gender']*2, col2=s)
```
2. **combine与update**
- **combine方法** 是一种基于列的合并操作,它会根据指定的函数逐列处理两个DataFrame,自动进行索引对齐。如果某个值为NaN,它会尝试从另一个DataFrame中获取对应值。例如,可以使用mean()比较并选择较大的值。
```python
df_combine_1 = df.loc[:1,['Gender','Height']].copy()
df_combine_2 = df.loc[10:11,['Gender','Height']].copy()
df_combine_1.combine(df_combine_2,lambda x,y:print(x,y))
```
- **update方法** 更倾向于一种更新操作,它会用第二个DataFrame的值替换第一个DataFrame中相同的索引和列的值,除非指定了`overwrite=False`,这样可以防止已存在的非缺失值被覆盖。
3. **concat方法** 是用于沿着轴方向(行或列)连接多个DataFrame或Series对象。它可以将多个对象堆叠在一起,形成一个更宽或更长的DataFrame。
4. **merge与join**
- **merge函数** 提供了SQL风格的合并功能,允许基于一个或多个键(列)进行连接。例如,你可以根据共同的列名合并两个DataFrame,可以选择左连接、右连接、内连接或外连接。
```python
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [8, 7], 'B': [6, 5]})
merged_df = df1.merge(df2, on='A', how='inner')
```
- **join函数** 与merge类似,但主要用于基于索引进行连接。它可以轻松地在DataFrame之间创建关系,尤其是在处理具有层次化索引的数据时。
在实际应用中,这些合并方法的选择取决于你的具体需求。例如,append用于扩展数据集,assign用于增加新变量,combine与update用于填充或更新数据,而concat、merge与join则用于组合多个数据集并根据特定条件进行操作。了解并熟练掌握这些方法,将有助于你高效地处理复杂的数据分析任务。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。