0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

5個(gè)必須知道的Pandas數(shù)據(jù)合并技巧

數(shù)據(jù)分析與開發(fā) ? 來(lái)源:數(shù)據(jù)分析與開發(fā) ? 作者:數(shù)據(jù)分析與開發(fā) ? 2022-04-13 10:35 ? 次閱讀

有朋友面試阿里70萬(wàn)總包的數(shù)據(jù)崗位,對(duì)方問(wèn)Pandas5數(shù)據(jù)合并的函數(shù),結(jié)果他只答出了2個(gè)。

b74fcc98-bad1-11ec-aa7f-dac502259ad0.png那么,究竟是哪五個(gè)呢?今天,我們就來(lái)帶大家了解一下!目錄:
  • 1. concat

  • 2. append

  • 3. merge

  • 4. join

  • 5. combine

  • 總結(jié)

1. concat

concatpandas中專門用于數(shù)據(jù)連接合并的函數(shù),功能非常強(qiáng)大,支持縱向合并橫向合并,默認(rèn)情況下是縱向合并,具體可以通過(guò)參數(shù)進(jìn)行設(shè)置。

	
		pd.concat( objs:'Iterable[NDFrame]|Mapping[Hashable,NDFrame]', axis=0, join='outer', ignore_index:'bool'=False, keys=None, levels=None, names=None, verify_integrity:'bool'=False, sort:'bool'=False, copy:'bool'=True, )->'FrameOrSeriesUnion'在函數(shù)方法中,各參數(shù)含義如下:
objs: 用于連接的數(shù)據(jù),可以是DataFrameSeries組成的列表axis=0 : 連接的方式,默認(rèn)為0也就是縱向連接,可選 1 為橫向連接join='outer':合并方式,默認(rèn)為 inner也就是交集,可選 outer 為并集ignore_index: 是否保留原有的索引keys=None:連接關(guān)系,使用傳遞的值作為一級(jí)索引levels=None:用于構(gòu)造多級(jí)索引names=None:索引的名稱verify_integrity: 檢測(cè)索引是否重復(fù),如果為True則有重復(fù)索引會(huì)報(bào)錯(cuò)sort: 并集合并方式下,對(duì)columns排序copy: 是否深度拷貝
接下來(lái),我們就對(duì)該函數(shù)功能進(jìn)行演示基礎(chǔ)連接

	
		In[1]:importpandasaspd In[2]:s1=pd.Series(['a','b']) In[3]:s2=pd.Series(['c','d']) In[4]:s1 Out[4]: 0a 1b dtype:object In[5]:s2 Out[5]: 0c 1d dtype:object In[6]:pd.concat([s1,s2]) Out[6]: 0a 1b 0c 1d dtype:object In[7]:df1=pd.DataFrame([['a',1],['b',2]], ...:columns=['letter','number']) In[8]:df2=pd.DataFrame([['c',3],['d',4]], ...:columns=['letter','number']) In[9]:pd.concat([df1,df2]) Out[9]: letternumber 0a1 1b2 0c3 1d4橫向連接

	
		In[10]:pd.concat([df1,df2],axis=1) Out[10]: letternumberletternumber 0a1c3 1b2d4默認(rèn)情況下,concat是取并集,如果兩個(gè)數(shù)據(jù)中有個(gè)數(shù)據(jù)沒有對(duì)應(yīng)行或列,則會(huì)填充為空值NaN。合并交集

	
		In[11]:df3=pd.DataFrame([['c',3,'cat'],['d',4,'dog']], ...:columns=['letter','number','animal']) In[12]:df1 Out[12]: letternumber 0a1 1b2 In[13]:df3 Out[13]: letternumberanimal 0c3cat 1d4dog In[14]:pd.concat([df1,df3],join='inner') Out[14]: letternumber 0a1 1b2 0c3 1d4索引重置(不保留原有索引)

	
		In[15]:pd.concat([df1,df3],join='inner',ignore_index=True) Out[15]: letternumber 0a1 1b2 2c3 3d4 #以下方式和上述的輸出結(jié)果等價(jià) In[16]:pd.concat([df1,df3],join='inner').reset_index(drop=True) Out[16]: letternumber 0a1 1b2 2c3 3d4指定索引

	
		In[17]:pd.concat([df1,df3],keys=['df1','df3']) Out[17]: letternumberanimal df10a1NaN 1b2NaN df30c3cat 1d4dog In[18]:pd.concat([df1,df3],keys=['df1','df3'],names=['df名稱','行ID']) Out[18]: letternumberanimal df名稱行ID df10a1NaN 1b2NaN df30c3cat 1d4dog檢測(cè)重復(fù)如果索引出現(xiàn)重復(fù),則無(wú)法通過(guò)檢測(cè),會(huì)報(bào)錯(cuò)

	
		In[19]:pd.concat([df1,df3],verify_integrity=True) Traceback(mostrecentcalllast): ... ValueError:Indexeshaveoverlappingvalues:Int64Index([0,1],dtype='int64')合并并集下columns排序

	
		In[21]:pd.concat([df1,df3],sort=True) Out[21]: animalletternumber 0NaNa1 1NaNb2 0catc3 1dogd4DataFrame與Series合并

	
		In[22]:pd.concat([df1,s1]) Out[22]: letternumber0 0a1.0NaN 1b2.0NaN 0NaNNaNa 1NaNNaNb In[23]:pd.concat([df1,s1],axis=1) Out[23]: letternumber0 0a1a 1b2b #新增列一般可選以下兩種方式 In[24]:df1.assign(新增列=s1) Out[24]: letternumber新增列 0a1a 1b2b In[25]:df1['新增列']=s1 In[26]:df1 Out[26]: letternumber新增列 0a1a 1b2b以上就concat函數(shù)方法的一些功能,相比之下,另外一個(gè)函數(shù)append也可以用于數(shù)據(jù)追加(縱向合并)
		
							

2. append

append主要用于追加數(shù)據(jù),是比較簡(jiǎn)單直接的數(shù)據(jù)合并方式。

	
		df.append( other, ignore_index:'bool'=False, verify_integrity:'bool'=False, sort:'bool'=False, )->'DataFrame'在函數(shù)方法中,各參數(shù)含義如下:
other: 用于追加的數(shù)據(jù),可以是DataFrameSeries或組成的列表ignore_index: 是否保留原有的索引verify_integrity: 檢測(cè)索引是否重復(fù),如果為True則有重復(fù)索引會(huì)報(bào)錯(cuò)sort: 并集合并方式下,對(duì)columns排序
接下來(lái),我們就對(duì)該函數(shù)功能進(jìn)行演示基礎(chǔ)追加

	
		In[41]:df1.append(df2) Out[41]: letternumber 0a1 1b2 0c3 1d4 In[42]:df1.append([df1,df2,df3]) Out[42]: letternumberanimal 0a1NaN 1b2NaN 0a1NaN 1b2NaN 0c3NaN 1d4NaN 0c3cat 1d4dogcolumns重置(不保留原有索引)

	
		In[43]:df1.append([df1,df2,df3],ignore_index=True) Out[43]: letternumberanimal 0a1NaN 1b2NaN 2a1NaN 3b2NaN 4c3NaN 5d4NaN 6c3cat 7d4dog檢測(cè)重復(fù)如果索引出現(xiàn)重復(fù),則無(wú)法通過(guò)檢測(cè),會(huì)報(bào)錯(cuò)

	
		In[44]:df1.append([df1,df2],verify_integrity=True) Traceback(mostrecentcalllast): ... ValueError:Indexeshaveoverlappingvalues:Int64Index([0,1],dtype='int64')索引排序

	
		In[46]:df1.append([df1,df2,df3],sort=True) Out[46]: animalletternumber 0NaNa1 1NaNb2 0NaNa1 1NaNb2 0NaNc3 1NaNd4 0catc3 1dogd4追加Series

	
		In[49]:s=pd.Series({'letter':'s1','number':9}) In[50]:s Out[50]: letters1 number9 dtype:object In[51]:df1.append(s) Traceback(mostrecentcalllast): ... TypeError:CanonlyappendaSeriesifignore_index=TrueoriftheSerieshasaname In[53]:df1.append(s,ignore_index=True) Out[53]: letternumber 0a1 1b2 2s19追加字典這個(gè)在爬蟲的時(shí)候比較好使,每爬取一條數(shù)據(jù)就合并到DataFrame類似數(shù)據(jù)中存儲(chǔ)起來(lái)

	
		In[54]:dic={'letter':'s1','number':9} In[55]:df1.append(dic,ignore_index=True) Out[55]: letternumber 0a1 1b2 2s19
		
							

3. merge

merge函數(shù)方法類似SQL里的join,可以是pd.merge或者df.merge,區(qū)別就在于后者待合并的數(shù)據(jù)是

	
		pd.merge( left:'DataFrame|Series', right:'DataFrame|Series', how:'str'='inner', on:'IndexLabel|None'=None, left_on:'IndexLabel|None'=None, right_on:'IndexLabel|None'=None, left_index:'bool'=False, right_index:'bool'=False, sort:'bool'=False, suffixes:'Suffixes'=('_x','_y'), copy:'bool'=True, indicator:'bool'=False, validate:'str|None'=None, )->'DataFrame'在函數(shù)方法中,關(guān)鍵參數(shù)含義如下:
left: 用于連接的左側(cè)數(shù)據(jù)right: 用于連接的右側(cè)數(shù)據(jù)how: 數(shù)據(jù)連接方式,默認(rèn)為 inner,可選outer、left和righton: 連接關(guān)鍵字段,左右側(cè)數(shù)據(jù)中需要都存在,否則就用left_on和right_onleft_on: 左側(cè)數(shù)據(jù)用于連接的關(guān)鍵字段right_on: 右側(cè)數(shù)據(jù)用于連接的關(guān)鍵字段left_index: True表示左側(cè)索引為連接關(guān)鍵字段right_index: True表示右側(cè)索引為連接關(guān)鍵字段suffixes: 'Suffixes' = ('_x', '_y'),可以自由指定,就是同列名合并后列名顯示后綴indicator: 是否顯示合并后某行數(shù)據(jù)的歸屬來(lái)源
接下來(lái),我們就對(duì)該函數(shù)功能進(jìn)行演示基礎(chǔ)合并

	
		In[55]:df1=pd.DataFrame({'key':['foo','bar','bal'], ...:'value2':[1,2,3]}) In[56]:df2=pd.DataFrame({'key':['foo','bar','baz'], ...:'value1':[5,6,7]}) In[57]:df1.merge(df2) Out[57]: keyvalue2value1 0foo15 1bar26其他連接方式

	
		In[58]:df1.merge(df2,how='left') Out[58]: keyvalue2value1 0foo15.0 1bar26.0 2bal3NaN In[59]:df1.merge(df2,how='right') Out[59]: keyvalue2value1 0foo1.05 1bar2.06 2bazNaN7 In[60]:df1.merge(df2,how='outer') Out[60]: keyvalue2value1 0foo1.05.0 1bar2.06.0 2bal3.0NaN 3bazNaN7.0 In[61]:df1.merge(df2,how='cross') Out[61]: key_xvalue2key_yvalue1 0foo1foo5 1foo1bar6 2foo1baz7 3bar2foo5 4bar2bar6 5bar2baz7 6bal3foo5 7bal3bar6 8bal3baz7指定連接鍵可以指定單個(gè)連接鍵,也可以指定多個(gè)連接鍵

	
		In[62]:df1=pd.DataFrame({'lkey1':['foo','bar','bal'], ...:'lkey2':['a','b','c'], ...:'value2':[1,2,3]}) In[63]:df2=pd.DataFrame({'rkey1':['foo','bar','baz'], ...:'rkey2':['a','b','c'], ...:'value2':[5,6,7]})  In[64]:df1 Out[64]: lkey1lkey2value2 0fooa1 1barb2 2balc3 In[65]:df2 Out[65]: rkey1rkey2value2 0fooa5 1barb6 2bazc7 In[66]:df1.merge(df2,left_on='lkey1',right_on='rkey1') Out[66]: lkey1lkey2value2_xrkey1rkey2value2_y 0fooa1fooa5 1barb2barb6 In[67]:df1.merge(df2,left_on=['lkey1','lkey2'],right_on=['rkey1','rkey2']) Out[67]: lkey1lkey2value2_xrkey1rkey2value2_y 0fooa1fooa5 1barb2barb6指定索引為鍵

	
		Out[68]:df1.merge(df2,left_index=True,right_index=True) Out[68]: lkey1lkey2value2_xrkey1rkey2value2_y 0fooa1fooa5 1barb2barb6 2balc3bazc7設(shè)置重復(fù)列后綴

	
		In[69]:df1.merge(df2,left_on='lkey1',right_on='rkey1',suffixes=['左','右']) Out[69]: lkey1lkey2value2左rkey1rkey2value2右 0fooa1fooa5 1barb2barb6連接指示新增一列用于顯示數(shù)據(jù)來(lái)源

	
		In[70]:df1.merge(df2,left_on='lkey1',right_on='rkey1',suffixes=['左','右'],how='outer', ...:indicator=True ...:) Out[70]: lkey1lkey2value2左rkey1rkey2value2右_merge 0fooa1.0fooa5.0both 1barb2.0barb6.0both 2balc3.0NaNNaNNaNleft_only 3NaNNaNNaNbazc7.0right_only
		
							

4. join

join就有點(diǎn)想append之于concat,用于數(shù)據(jù)合并

	
		df.join( other:'FrameOrSeriesUnion', on:'IndexLabel|None'=None, how:'str'='left', lsuffix:'str'='', rsuffix:'str'='', sort:'bool'=False, )->'DataFrame'在函數(shù)方法中,關(guān)鍵參數(shù)含義如下:
other: 用于合并的右側(cè)數(shù)據(jù)on: 連接關(guān)鍵字段,左右側(cè)數(shù)據(jù)中需要都存在,否則就用left_on和right_onhow: 數(shù)據(jù)連接方式,默認(rèn)為 inner,可選outer、left和rightlsuffix: 左側(cè)同名列后綴rsuffix:右側(cè)同名列后綴
接下來(lái),我們就對(duì)該函數(shù)功能進(jìn)行演示

	
		In[71]:df=pd.DataFrame({'key':['K0','K1','K2','K3','K4','K5'], ...:'A':['A0','A1','A2','A3','A4','A5']}) In[72]:other=pd.DataFrame({'key':['K0','K1','K2'], ...:'B':['B0','B1','B2']}) In[73]:df Out[73]: keyA 0K0A0 1K1A1 2K2A2 3K3A3 4K4A4 5K5A5 In[74]:other Out[74]: keyB 0K0B0 1K1B1 2K2B2 In[75]:df.join(other,on='key') Traceback(mostrecentcalllast): ... ValueError:Youaretryingtomergeonobjectandint64columns.Ifyouwishtoproceedyoushouldusepd.concat如果想用key關(guān)鍵字, 則需要key是索引。。。指定key

	
		In[76]:df.set_index('key').join(other.set_index('key')) Out[76]: AB key K0A0B0 K1A1B1 K2A2B2 K3A3NaN K4A4NaN K5A5NaN In[77]:df.join(other.set_index('key'),on='key') Out[77]: keyAB 0K0A0B0 1K1A1B1 2K2A2B2 3K3A3NaN 4K4A4NaN 5K5A5NaN指定重復(fù)列后綴

	
		In[78]:df.join(other,lsuffix='_左',rsuffix='右') Out[78]: key_左Akey右B 0K0A0K0B0 1K1A1K1B1 2K2A2K2B2 3K3A3NaNNaN 4K4A4NaNNaN 5K5A5NaNNaN其他參數(shù)就不多做介紹了,和merge基本一樣。
		
							

5. combine

在數(shù)據(jù)合并的過(guò)程中,我們可能需要對(duì)對(duì)應(yīng)位置的值進(jìn)行一定的計(jì)算,pandas提供了combinecombine_first函數(shù)方法來(lái)進(jìn)行這方面的合作操作。

	
		df.combine( other:'DataFrame', func, fill_value=None, overwrite:'bool'=True, )->'DataFrame'比如,數(shù)據(jù)合并的時(shí)候取單元格最小的值

	
		In[79]:df1=pd.DataFrame({'A':[0,0],'B':[4,4]}) In[80]:df2=pd.DataFrame({'A':[1,1],'B':[3,3]}) In[81]:df1 Out[81]: AB 004 104 In[82]:df2 Out[82]: AB 013 113 In[83]:take_smaller=lambdas1,s2:s1ifs1.sum()elses2 In[84]:df1.combine(df2,take_smaller) Out[84]: AB 003 103 #也可以調(diào)用numpy的函數(shù) In[85]:importnumpyasnp In[86]:df1.combine(df2,np.minimum) Out[86]: AB 003 103fill_value填充缺失值

	
		In[87]:df1=pd.DataFrame({'A':[0,0],'B':[None,4]}) In[87]:df2=pd.DataFrame({'A':[1,1],'B':[3,3]}) In[88]:df1 Out[88]: AB 00NaN 104.0 In[89]:df2 Out[89]: AB 013 113 In[90]:df1.combine(df2,take_smaller,fill_value=-88) Out[90]: AB 00-88.0 104.0overwrite=False保留

	
		In[91]:df1=pd.DataFrame({'A':[0,0],'B':[4,4]}) In[92]:df2=pd.DataFrame({'B':[3,3],'C':[-10,1],},index=[1,2]) In[93]:df1 Out[93]: AB 004 104 In[94]:df2 Out[94]: BC 13-10 231 In[95]:df1.combine(df2,take_smaller) Out[95]: ABC 0NaNNaNNaN 1NaN3.0-10.0 2NaN3.01.0 #保留A列原有的值 In[96]:df1.combine(df2,take_smaller,overwrite=False) Out[96]: ABC 00.0NaNNaN 10.03.0-10.0 2NaN3.01.0另外一個(gè)combine_first

	
		df.combine_first(other:'DataFrame')->'DataFrame'當(dāng)df中元素為空采用other里的進(jìn)行替換,結(jié)果為并集合并

	
		In[97]:df1=pd.DataFrame({'A':[None,0],'B':[None,4]}) In[98]:df2=pd.DataFrame({'A':[1,1],'B':[3,3]}) In[99]:df1 Out[99]: AB 0NaNNaN 10.04.0 In[100]:df2 Out[100]: AB 013 113 In[101]:df1.combine_first(df2) Out[101]: AB 01.03.0 10.04.0 In[102]:df1=pd.DataFrame({'A':[None,0],'B':[4,None]}) In[103]:df2=pd.DataFrame({'B':[3,3],'C':[1,1]},index=[1,2]) In[104]:df1 Out[104]: AB 0NaN4.0 10.0NaN In[105]:df2 Out[105]: BC 131 231 In[106]:df1.combine_first(df2) Out[106]: ABC 0NaN4.0NaN 10.03.01.0 2NaN3.01.0
		
							

總結(jié)

以上就本次介紹的關(guān)于Pandas數(shù)據(jù)合并的全部?jī)?nèi)容,相比之下我們可以發(fā)現(xiàn):
  • append主要用于縱向追加數(shù)據(jù),比較簡(jiǎn)單直接;
  • concat功能最強(qiáng)大,不僅可以縱向合并數(shù)據(jù)還可以橫向合并數(shù)據(jù)而且支持很多其他條件設(shè)置;
  • merge則主要用于橫向合并數(shù)據(jù),類似SQL里的join連接;
  • join則比較簡(jiǎn)單,用于橫向合并數(shù)據(jù),條件相對(duì)苛刻;
  • combine更像是按照元素進(jìn)行合并,根據(jù)一定的條件(函數(shù)規(guī)則)來(lái)進(jìn)行數(shù)據(jù)合并。
審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6761

    瀏覽量

    88620
  • concat
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    1907

原文標(biāo)題:5 個(gè)必須知道的 Pandas 數(shù)據(jù)合并技巧

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    貼片電阻應(yīng)用須知

    貼片電阻應(yīng)用須知
    的頭像 發(fā)表于 10-16 09:47 ?137次閱讀

    學(xué)習(xí)FPGA必須知道的社區(qū)

    學(xué)習(xí)FPGA必須知道的社區(qū)
    的頭像 發(fā)表于 01-03 17:51 ?326次閱讀
    學(xué)習(xí)FPGA<b class='flag-5'>必須知道</b>的社區(qū)

    Python利用pandas讀寫Excel文件

    使用pandas模塊讀取Excel文件可以更為方便和快捷。pandas可以將Excel文件讀取為一個(gè)DataFrame對(duì)象,方便進(jìn)行數(shù)據(jù)處理和分析。
    的頭像 發(fā)表于 12-16 11:22 ?1162次閱讀
    Python利用<b class='flag-5'>pandas</b>讀寫Excel文件

    POL負(fù)載點(diǎn)電源設(shè)計(jì)中有何訣竅?有兩點(diǎn)很關(guān)鍵,你必須知道

    POL負(fù)載點(diǎn)電源設(shè)計(jì)中有何訣竅?有兩點(diǎn)很關(guān)鍵,你必須知道
    的頭像 發(fā)表于 12-06 16:06 ?1819次閱讀
    POL負(fù)載點(diǎn)電源設(shè)計(jì)中有何訣竅?有兩點(diǎn)很關(guān)鍵,你<b class='flag-5'>必須知道</b>

    電阻的秘密——你必須知道的電阻參數(shù)

    電阻的秘密——你必須知道的電阻參數(shù)
    的頭像 發(fā)表于 12-06 14:31 ?755次閱讀
    電阻的秘密——你<b class='flag-5'>必須知道</b>的電阻參數(shù)

    使用pandas進(jìn)行數(shù)據(jù)選擇和過(guò)濾的基本技術(shù)和函數(shù)

    Python pandas庫(kù)提供了幾種選擇和過(guò)濾數(shù)據(jù)的方法,如loc、iloc、[]括號(hào)操作符、query、isin、between等等
    的頭像 發(fā)表于 12-01 10:14 ?310次閱讀
    使用<b class='flag-5'>pandas</b>進(jìn)行<b class='flag-5'>數(shù)據(jù)</b>選擇和過(guò)濾的基本技術(shù)和函數(shù)

    pcb菲林是什么?這5個(gè)作用你知道

    pcb菲林是什么?這5個(gè)作用你知道
    的頭像 發(fā)表于 11-22 11:14 ?7148次閱讀

    Pandas:Python中強(qiáng)大方便的繪圖功能

    編譯到C,并且在C上執(zhí)行,因此也保證了處理速度。不過(guò)我們今天的重點(diǎn)不在于它的處理速度,而是它和matplotlib合作產(chǎn)生的強(qiáng)大且方便的繪圖功能。 到底有多強(qiáng)呢?讓我們來(lái)體會(huì)一下。 1.創(chuàng)建數(shù)據(jù) 使用pandas可以很方便地進(jìn)行數(shù)據(jù)
    的頭像 發(fā)表于 11-03 11:04 ?454次閱讀
    <b class='flag-5'>Pandas</b>:Python中強(qiáng)大方便的繪圖功能

    Pandas DataFrame的存儲(chǔ)格式性能對(duì)比

    Pandas 支持多種存儲(chǔ)格式,在本文中將對(duì)不同類型存儲(chǔ)格式下的Pandas Dataframe的讀取速度、寫入速度和大小的進(jìn)行測(cè)試對(duì)比。 創(chuàng)建測(cè)試Dataframe 首先創(chuàng)建一個(gè)包含不同類型
    的頭像 發(fā)表于 11-03 09:58 ?468次閱讀
    <b class='flag-5'>Pandas</b> DataFrame的存儲(chǔ)格式性能對(duì)比

    Pandas函數(shù)的三個(gè)接口介紹

    本文主要介紹pandas.DataFrame的三個(gè)接口,即assign、eval、query,分別用于賦值、查詢和執(zhí)行計(jì)算。 01 assign 在數(shù)據(jù)分析處理中,賦值產(chǎn)生新的列是非常高頻的應(yīng)用場(chǎng)
    的頭像 發(fā)表于 11-01 16:38 ?412次閱讀
    <b class='flag-5'>Pandas</b>函數(shù)的三<b class='flag-5'>個(gè)</b>接口介紹

    如何利用Python和pandas來(lái)處理json數(shù)據(jù)

    了如何利用Python和pandas(Python的第三方庫(kù))來(lái)處理json數(shù)據(jù),主要內(nèi)容包含: json數(shù)據(jù)簡(jiǎn)介 常用json數(shù)據(jù)轉(zhuǎn)化網(wǎng)站 json
    的頭像 發(fā)表于 11-01 10:59 ?2065次閱讀
    如何利用Python和<b class='flag-5'>pandas</b>來(lái)處理json<b class='flag-5'>數(shù)據(jù)</b>

    pandas合并數(shù)據(jù)5個(gè)函數(shù)

    今天借著這個(gè)機(jī)會(huì),就為大家盤點(diǎn)一下pandas合并數(shù)據(jù)5個(gè)函數(shù)。 join join是基于索引的橫向拼接,如果索引一致,直接橫向拼接。如
    的頭像 發(fā)表于 10-31 11:11 ?640次閱讀
    <b class='flag-5'>pandas</b>中<b class='flag-5'>合并</b><b class='flag-5'>數(shù)據(jù)</b>的<b class='flag-5'>5</b><b class='flag-5'>個(gè)</b>函數(shù)

    Pandas:Python中最好的數(shù)據(jù)分析工具

    使用 Pandas 分析數(shù)據(jù)的能力。 常見的比如說(shuō): 在處理貨幣值時(shí)使用貨幣符號(hào)。例如,如果您的數(shù)據(jù)包含值 25.00,您不會(huì)立即知道該值是人民幣、美元、英鎊還是其他某種貨幣。 百分比
    的頭像 發(fā)表于 10-31 10:47 ?431次閱讀
    <b class='flag-5'>Pandas</b>:Python中最好的<b class='flag-5'>數(shù)據(jù)</b>分析工具

    什么格式是保存Pandas數(shù)據(jù)的最好格式

    數(shù)據(jù)分析相關(guān)項(xiàng)目工作時(shí),我通常使用Jupyter筆記本和pandas庫(kù)來(lái)處理和傳遞我的數(shù)據(jù)。對(duì)于中等大小的數(shù)據(jù)集來(lái)說(shuō),這是一個(gè)非常直接的過(guò)
    的頭像 發(fā)表于 10-30 15:05 ?628次閱讀
    什么格式是保存<b class='flag-5'>Pandas</b><b class='flag-5'>數(shù)據(jù)</b>的最好格式

    盤點(diǎn)66個(gè)Pandas函數(shù)合集

    今天我們重新盤點(diǎn)66個(gè)Pandas函數(shù)合集,包括數(shù)據(jù)預(yù)覽、數(shù)值數(shù)據(jù)操作、文本數(shù)據(jù)操作、行/列操作等等,涉及“
    的頭像 發(fā)表于 10-30 09:58 ?1333次閱讀
    盤點(diǎn)66<b class='flag-5'>個(gè)</b><b class='flag-5'>Pandas</b>函數(shù)合集