一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用Python pandas對不同列名的數(shù)據(jù)進行合并

 imelee 2017-07-08

使用pandas的merge方法進行數(shù)據(jù)合并的時候,如果列名相同則可以省去列名的指定,pandas會進行自動的識別。但是如果兩組數(shù)據(jù)的列名不一致,不加任何參數(shù)直接進行默認的操作則會導(dǎo)致報錯。

例如有如下兩組數(shù)據(jù):

In [40]: df1

Out[40]: 

   data1 key1:

0      0     c

1      1     d

2      2     e

3      3     f

4      4     g

5      5     a

6      6     b


In [41]: df2

Out[41]: 

   data2 key2

0      0    a

1      1    c

2      2    d


嘗試進行數(shù)據(jù)合并,結(jié)果提示如下:

In [42]: pd.merge(df1,df2)

---------------------------------------------------------------------------

MergeError                                Traceback (most recent call last)

<ipython-input-42-8a74cf63ba8e> in <module>()

----> 1 pd.merge(df1,df2)


/Library/Python/2.7/site-packages/pandas/tools/merge.pyc in merge(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator)

     59                          right_on=right_on, left_index=left_index,

     60                          right_index=right_index, sort=sort, suffixes=suffixes,

---> 61                          copy=copy, indicator=indicator)

     62     return op.get_result()

     63 if __debug__:


/Library/python/2.7/site-packages/pandas/tools/merge.pyc in __init__(self, left, right, how, on, left_on, right_on, axis, left_index, right_index, sort, suffixes, copy, indicator)

    536             warnings.warn(msg, UserWarning)

    537 

--> 538         self._validate_specification()

    539 

    540         # note this function has side effects


/Library/Python/2.7/site-packages/pandas/tools/merge.pyc in _validate_specification(self)

    881                     self.right.columns)

    882                 if len(common_cols) == 0:

--> 883                     raise MergeError('No common columns to perform merge on')

    884                 if not common_cols.is_unique:

    885                     raise MergeError("Data columns not unique: %s"


MergeError: No common columns to perform merge on


這樣的操作會導(dǎo)致類似上面的錯誤,pandas找不到能夠進行合并的列。如果進行合并,其實有兩個思路可以考慮。第一種是根據(jù)現(xiàn)在的數(shù)據(jù)重新創(chuàng)建列名一致的數(shù)據(jù)對象,然后進行新的數(shù)據(jù)對象合并。但是,這樣在一定程度上來說就不是對最原始的數(shù)據(jù)進行處理了。不過,很多時候或許這也是一個值得考慮的手段。另外一種方法就是利用pandas自帶的功能,在進行數(shù)據(jù)合并的時候直接指明需要合并的列的名稱。具體的操作如下:

In [45]: pd.merge(df1,df2,left_on='key1:',right_on='key2')

Out[45]: 

   data1 key1:  data2 key2

0      0     c      1    c

1      1     d      2    d

2      5     a      0    a


最初輸入pd.merge(df1,df2,left_on=‘key1’,right_on=‘key2’)結(jié)果報錯的時候很詫異,檢查數(shù)據(jù)才看到自己在創(chuàng)建數(shù)據(jù)的時候多出了一個冒號。不過,對于merge操作的默認行為測試中并沒有用到列名,前面的測試也就無需再做一次。在上面的運行結(jié)果中,數(shù)據(jù)列分別使用了兩組數(shù)據(jù)中獨立的名字,如果把兩組數(shù)據(jù)的獨立名字改成一致,這其實就是一個指定列的合并。而彼時,默認的merge合并應(yīng)該會奏效,因為pandas能夠找到兩個列名一致的列。然而,指定了合并列名的操作中數(shù)據(jù)的標題會被pandas進行修改以進行區(qū)分。

In [49]: df1

Out[49]: 

   data key1

0     0    c

1     1    d

2     2    e

3     3    f

4     4    g

5     5    a

6     6    b


In [50]: df2

Out[50]: 

   data key2

0     0    a

1     1    c

2     2    d


In [51]: pd.merge(df1,df2)

Out[51]: 

   data key1 key2

0     0    c    a

1     1    d    c

2     2    e    d


In [52]: pd.merge(df1,df2,left_on='key1',right_on='key2')

Out[52]: 

   data_x key1  data_y key2

0       0    c       1    c

1       1    d       2    d

2       5    a       0    a


從上面的結(jié)果中可以看出,pandas把兩個data分別以下劃線架x,y的形式進行了區(qū)分。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产一区二区久久综合| 亚洲午夜av一区二区| 黑鬼糟蹋少妇资源在线观看| 亚洲一级二级三级精品| 又大又长又粗又黄国产| 日韩不卡一区二区在线| 亚洲一区二区三区国产| 成年人免费看国产视频| 精品女同一区二区三区| 91欧美日韩国产在线观看| 青草草在线视频免费视频| 国产户外勾引精品露出一区| 国产一区二区在线免费| 国产免费自拍黄片免费看| 久久精品视频就在久久| 亚洲一区二区三区日韩91| 日韩人妻精品免费一区二区三区| 亚洲欧美国产中文色妇| 免费啪视频免费欧美亚洲| 色婷婷在线精品国自产拍| 亚洲中文在线中文字幕91| 国产一区二区三区四区免费| 九九热这里有精品20| 婷婷亚洲综合五月天麻豆| 草草夜色精品国产噜噜竹菊| 欧美精品久久男人的天堂| 欧美人禽色视频免费看| 久久热麻豆国产精品视频| 亚洲精品一区三区三区| 国产真人无遮挡免费视频一区| 99在线视频精品免费播放| 国产丝袜女优一区二区三区| 国产又粗又猛又爽色噜噜| 久久这里只有精品中文字幕| 亚洲清纯一区二区三区| 国产午夜精品福利免费不| 国产又粗又猛又爽色噜噜 | 日韩欧美一区二区不卡视频| 欧美国产精品区一区二区三区| 日韩欧美一区二区不卡视频| 色鬼综合久久鬼色88|