本系列文章配套代码获取有以下三种途径:
-
可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):
https://returu.github.io/Python_Data_Analysis/lab/index.html
-
也可以通过百度网盘获取,需要在本地配置代码运行环境,环境配置可以查看【Python基础】2.搭建Python开发环境:
链接:https://pan.baidu.com/s/1MYkeYeVAIRqbxezQECHwcA?pwd=mnsj
提取码:mnsj
-
前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Data_Analysis
根据《Python for Data Analysis 3rd Edition》翻译整理
—————————————————–
还有另一种数据组合情况,既不是合并操作,也不是连接操作。
1.Series:
有时,两个数据集的索引全部或部分重叠,需要进行联合重叠值操作,进行数据修补,此时就需要使用combine_first方法。类似于np.where方法。
1>>> s1 = pd.Series([1,2,5,6,np.nan],index=['a','b','c','d','e'])
2>>> s1
3a 1.0
4b 2.0
5c 5.0
6d 6.0
7e NaN
8dtype: float64
9
10>>> s2 = pd.Series([9,np.nan,np.nan,7,8],index=['b','c','d','e','f'])
11>>> s2
12b 9.0
13c NaN
14d NaN
15e 7.0
16f 8.0
17dtype: float64
18
19>>> s1.combine_first(s2)
20a 1.0
21b 2.0
22c 5.0
23d 6.0
24e 7.0
25f 8.0
26dtype: float64
27
28>>> s2.combine_first(s1)
29a 1.0
30b 9.0
31c 5.0
32d 6.0
33e 7.0
34f 8.0
35dtype: float64
2.DataFrame:
在DataFrame中,combine_first方法逐列做跟在Series中相同的操作,可以看做是根据传入的对象来修补调用对象的数据。
输出将具有所有列名的并集。
1>>> df1 = pd.DataFrame({'a':[2,np.nan,6,np.nan],'b':[np.nan,5,np.nan,8],'c':[11,22,33,44]})
2>>> df1
3 a b c
40 2.0 NaN 11
51 NaN 5.0 22
62 6.0 NaN 33
73 NaN 8.0 44
8
9>>> df2 = pd.DataFrame({'a':[5.5,4.4,np.nan,3.3,2.2],'b':[np.nan,3.3,4.4,5.5,6.6]})
10>>> df2
11 a b
120 5.5 NaN
131 4.4 3.3
142 NaN 4.4
153 3.3 5.5
164 2.2 6.6
17
18>>> df1.combine_first(df2)
19 a b c
200 2.0 NaN 11.0
211 4.4 5.0 22.0
222 6.0 4.4 33.0
233 3.3 8.0 44.0
244 2.2 6.6 NaN
25
26>>> df2.combine_first(df1)
27 a b c
280 5.5 NaN 11.0
291 4.4 3.3 22.0
302 6.0 4.4 33.0
313 3.3 5.5 44.0
324 2.2 6.6 NaN
本篇文章来源于微信公众号: 码农设计师