99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-10-23 閱讀量: 1774
pandas中怎么對數(shù)據(jù)框進行拼接?

由于需要整合兩份不同的數(shù)據(jù),所以需要使用數(shù)據(jù)合并的方法。在這之前,一直使用R來對數(shù)據(jù)框進行操作,python怎么操作?

python中的數(shù)據(jù)框是pandas中的dataframe數(shù)據(jù)類型、跟R中的很像。

首先如果要使用pandas庫中的函數(shù),在python的前面需要載入這個庫:

import pandas as pd

pandas拼接數(shù)據(jù)框有三個方法

1、append

比較常用方便快捷的拼接是使用append。假設(shè)有兩個數(shù)據(jù)框df1與df2,只需要下述操作即可:

df = df1.append(df2)

需要注意的是:這里返回一個拼接后的新的數(shù)據(jù)框df。

2、concat

還有一種方法concat。

df = pd.concat([df1, df2], axis = 0)

其中axis = 0表示上下拼接粘貼行,axis = 1就是左右拼接粘貼列,當(dāng)然,默認(rèn)就是0。

直接修改原本的數(shù)據(jù)框。其實只需要修改其中的一個參數(shù):copy = False即可。此時代碼變成:

df = pd.concat([df1, df2], axis = 0, copy = False)

此外還有一些常用操作的參數(shù):

join = 'outer',表示取并;’inner’則是取交。 
ignore_index = Ture,則會重新分配index從0…n-1。

3、merge

merge

同樣也可以實現(xiàn)前面的append的操作,只需使用如下的代碼即可:

df = pd.merge(df1, df2, left_index = True, right_index = True, how = 'outer') 

merge里面的功能就非常多了,

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True,
suffixes=('_x', '_y'), copy=True, indicator=False)

left: 用來左連接的dataframe對象
right: 放在右邊的dataframe對象
how: 連接方式可以是'left', 'right', 'outer', 'inner'. 默認(rèn)為inner。
on: 連接的字段名
left_on: 左邊dataframe的列會用做keys??梢允橇忻?,
或者與dataframe長度相同的矩陣array。
right_on: 右邊同上。
left_index: 如果為Ture,用左側(cè)dataframe的index作為
連接鍵。如果是多維索引,level數(shù)要跟右邊相同才行。
right_index: 右邊同上。
sort: 對合并后的數(shù)據(jù)框排序,以連接鍵。
suffixes: 一個tuple,包字符串后綴,用來加在重疊的列名后面。
默認(rèn)是('_x','_y')。
copy: 默認(rèn)Ture,復(fù)制數(shù)據(jù)。
indicator: 布爾型(True/FALSE),或是字符串。
如果為True,合并之后會增加一列叫做'_merge'。
是分類數(shù)據(jù),用left_only, right_only, both來標(biāo)記
來自左邊,右邊和兩邊的數(shù)據(jù)。

這里需要強調(diào)一點是:Python中的拼接都是根據(jù)列名來進行,如果你有兩個不一樣的數(shù)據(jù)框,比如說:一個列名是:['a', 'b', 'c', 'd'],另一列列名是['e', 'f', 'g', 'h'],如果我們想直接像R使用rbind一樣使用append等函數(shù),粘上去就會出問題,這時就需要修改一列的列名,例如將一列的列名賦值給另一列的列名。

df1.columns = list(df2)

0.0000
3
關(guān)注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據(jù)
推薦帖子