中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

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

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

例如有如下兩組數(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ù)合并,結果提示如下:

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

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

MergeError                                Traceback (most recent call last)

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

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


/Library/Python/2.7/site-packages/pandas/tools/merge.pyc inmerge(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()

     63if __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


這樣的操作會導致類似上面的錯誤,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’)結果報錯的時候很詫異,檢查數(shù)據(jù)才看到自己在創(chuàng)建數(shù)據(jù)的時候多出了一個冒號。不過,對于merge操作的默認行為測試中并沒有用到列名,前面的測試也就無需再做一次。在上面的運行結果中,數(shù)據(jù)列分別使用了兩組數(shù)據(jù)中獨立的名字,如果把兩組數(shù)據(jù)的獨立名字改成一致,這其實就是一個指定列的合并。而彼時,默認的merge合并應該會奏效,因為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


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


本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python Pandas兩個表格內容模糊匹配的實現(xiàn)
Python 數(shù)據(jù)處理庫 pandas 進階教程
這次終于一次性把merge()、join()、concat()的區(qū)別講清楚了
Python學習教程:從Excel到Python:最常用到的Pandas函數(shù)(下)
python數(shù)據(jù)分析之pandas常用命令整理
合并多個Excel文件,Python相當輕松
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服