有時候我們想要的數據合并結果是數據的軸向連接,在pandas中這可以通過concat來實現。操作的對象通常是Series。
Ipython中的交互代碼如下:
In [17]: from pandas import Series,DataFrameIn [18]: series1 = Series(range(2),index = ['a','b'])In [19]: series2 = Series(range(3),index = ['c','d','e'])In [20]: series3 = Series(range(2),index = ['f','g'])In [21]: import pandas as pd
進行三個Series的連接:
In [22]: pd.concat([series1,series2,series3])Out[22]: a 0b 1c 0d 1e 2f 0g 1dtype: int64
默認情況下,pandas執行的是按照axis=0進行連接。如果進行axis=1的連接,結果如下:
In [24]: S1=pd.concat([series1,series2,series3],axis=1)In [25]: S1Out[25]: 0 1 2a 0.0 NaN NaNb 1.0 NaN NaNc NaN 0.0 NaNd NaN 1.0 NaNe NaN 2.0 NaNf NaN NaN 0.0g NaN NaN 1.0In [26]: type(S1)Out[26]: pandas.core.frame.DataFrame
結果是一個DataFrame,回頭再看一下前面的Series的連接后的最終類型:
In [27]: type(pd.concat([series1,series2,series3]))Out[27]: pandas.core.series.Series
兩種方式的結果并不相同,一個結果是Series,另一個則是DataFrame。
In [29]: series3 = Series(range(2),index = ['f','e'])In [30]: pd.concat([series1,series2,series3])Out[30]: a 0b 1c 0d 1e 2f 0e 1dtype: int64
從上面的一點測試中可以看出,concat的操作僅僅是單純的連接,并沒有涉及到數據的整合。如果想要進行整合,還是使用merge的方法。
以上這篇python pandas中對Series數據進行軸向連接的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答