首页Python【Python数据分析】4...

【Python数据分析】43.数据规整——联合与合并数据4(联合重叠数据)


本系列文章配套代码获取有以下三种途径:

  • 可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):

https://returu.github.io/Python_Data_Analysis/lab/index.html
链接: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


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments