国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 一文搞懂Python中Pandas數據合并

一文搞懂Python中Pandas數據合并

2022-03-08 00:16Dream丶Killer Python

pandas是基于NumPy的一種工具,該工具是為了解決數據分析任務而創建的。Pandas納入了大量庫和一些標準的數據模型,提供了高效操作大型數據集的工具。pandas提供大量快速便捷地處理數據的函數和方法。你很快就會發現,它是使Py

數據合并是數據處理過程中的必經環節,pandas作為數據分析的利器,提供了四種常用的數據合并方式,讓我們看看如何使用這些方法吧!

 

1.concat()

concat() 可用于兩個及多個 DataFrame 間行/列方向進行內聯或外聯拼接操作,默認對行(沿 y 軸)取并集。

使用方式

pd.concat(
  objs: Union[Iterable[~FrameOrSeries], Mapping[Union[Hashable, NoneType], ~FrameOrSeries]],
  axis=0,
  join='outer',
  ignore_index: bool = False,
  keys=None,
  levels=None,
  names=None,
  verify_integrity: bool = False,
  sort: bool = False,
  copy: bool = True,
)

主要參數

  • objs:一個序列或是Series,DataFrame對象的映射。
  • axis:連接的軸,0(‘index',行),1(‘columns',列),默認為0。
  • join:連接方式 ,inner(交集), outer(并集),默認為outer。
  • ignore_index:是否重置串聯軸的索引值。如果為True,則重置索引為0,…, n - 1。
  • keys:創建層次化索引??梢允侨我庵档牧斜砘驍到M、元組數組、數組列表(如果將levels設置成多級數組的話)
  • names:生成的分層索引中級別的名稱。

示例

創建兩個 DataFrame。

df1 = pd.DataFrame(
        {'char': ['a', 'b'],
         'num': [1, 2]})
df2 = pd.DataFrame(
        {'char': ['b', 'c'],
         'num': [3, 4]})

一文搞懂Python中Pandas數據合并

concat() 默認會對行方向進行拼接操作,連接方式 outer。

pd.concat([d1, d2])

一文搞懂Python中Pandas數據合并

清除現有索引并重置索引。

pd.concat(
  [d1, d2],
  ignore_index=True)

一文搞懂Python中Pandas數據合并

通過 keys 參數在數據的最外層添加分層索引。

pd.concat(
  [d1, d2],
  keys=['d1', 'd2'])

一文搞懂Python中Pandas數據合并

指定 names 參數來標記創建的索引鍵。

pd.concat(
  [d1, d1],
  keys=['d1', 'd2'],
  names=['DF Name', 'Row ID'])

一文搞懂Python中Pandas數據合并

將兩個 DataFrame 與重疊的列進行組合并返回所有內容。 交集外的列填充 NaN。

df3 = pd.DataFrame(
        {'char': ['b', 'c'],
        'float': [3.0, 4.0]})
pd.concat([df1, df3])

一文搞懂Python中Pandas數據合并

將兩個 DataFrame 與重疊的列進行組合,只返回重疊列的內容。

pd.concat(
  [df1, df3],
  join="inner")

一文搞懂Python中Pandas數據合并

指定 axis=1 沿 x 軸水平組合 DataFrame 對象。

df4 = pd.DataFrame(
        {'char': ['b', 'c', 'd'],
         'num': [3, 4, 5]},
         index=range(1, 4))
pd.concat([df1, df4], axis=1)

一文搞懂Python中Pandas數據合并

 

2.merge()

merge() 只能用于兩個 DataFrame 間列方向進行內聯或外聯合并操作,默認列合并(沿 x 軸),取交集(即:以兩個 DataFrame 列名的交集作為連接鍵)

使用方式

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

參數

  • left:DataFrame
  • right:DataFrame 或者帶有 name 的Series
  • how:{‘left', ‘right', ‘outer', ‘inner'}, 默認為 ‘inner',連接的方式
  • on:用于連接的列索引名稱,必須同時存在于左、右兩個DataFrame中,默認是以兩個DataFrame列名的交集作為連接鍵。
  • left_on:左側DataFrame中用于連接鍵的列名,這個參數在左右列名不同但代表的含義相同時非常有用;
  • right_on:右側DataFrame中用于連接鍵的列名
  • left_index:默認為False,不使用左側DataFrame中的行索引作為連接鍵(但是這種情況下最好用JOIN)
  • right_index:默認為False,不使用右側DataFrame中的行索引作為連接鍵( 但是這種情況下最好用JOIN)
  • sort:默認為False,將合并的數據進行排序,設置為False可以提高性能
  • suffixes:字符串值組成的元組,用于指定當左右DataFrame存在相同列名時在列名后面附加的后綴名稱,默認為('_x', ‘_y')
  • copy:默認為True,總是將數據復制到數據結構中,設置為False可以提高性能
  • indicator:顯示合并數據中數據的來源情況
  • validate:{“one_to_one” or “1:1”, “one_to_many” or “1:m”, “many_to_one” or “m:1”, “many_to_many” or “m:m”}如果指定,則檢查合并是否為指定類型。

示例

創建兩個DataFrame。

df1 = pd.DataFrame(
        {'name': ['A1', 'B1', 'C1'],
         'grade': [60, 70, 80]})
df2 = pd.DataFrame(
        {'name': ['B1', 'C1', 'D1'],
         'grade': [70, 80, 100]})

一文搞懂Python中Pandas數據合并

merge() 默認情況下,會根據兩個 DataFrame 中同時存在的列進行合并,合并方法采用取交集的方式。

df1.merge(df2)

一文搞懂Python中Pandas數據合并

指定合并的方式為 outer,取并集。

df1.merge(df2, how='outer')

一文搞懂Python中Pandas數據合并

下面再創建兩個 DataFrame。

df1 = pd.DataFrame(
    {'name1': ['A1', 'B1', 'B1', 'C1'],
     'grade': [60, 70, 80, 90]})
df2 = pd.DataFrame(
    {'name2': ['B1', 'C1', 'D1', 'E1'],
     'grade': [70, 80, 90, 100]})

一文搞懂Python中Pandas數據合并

根據 name1 和 name2 列合并 df1 和 df2。 grade 列附加了默認后綴 _x 和 _y。

df1.merge(
  df2,
  left_on='name1',
  right_on='name2')

一文搞懂Python中Pandas數據合并

合并 df1 和 df2,并將指定的左右后綴附加到重疊列末尾。

df1.merge(
  df2,
  left_on='name1',
  right_on='name2',
  suffixes=('_1', '_2'))

一文搞懂Python中Pandas數據合并

 

3.append()

append() 可用于兩個及多個 DataFrame 間行方向(沿 y 軸)的拼接操作,默認取并集。

使用方式

df1.append(
  other,
  ignore_index=False,
  verify_integrity=False,
  sort=False)

參數

  • other : 指定要添加的數據。DataFrame 或 Series 對象,或這些對象的列表
  • ignore_index: 是否忽略索引,如果為 True,軸將被重置為 0, 1, …, n - 1。默認為False
  • verify_integrity:如果為 True,則在創建具有重復項的索引時引發 ValueError。默認為 False
  • sort : 如果 df1 和 other 的列未對齊,則對列進行排序。默認為 False。

示例

創建兩個 DataFrame。

df1 = pd.DataFrame(
        [[1, 2], [3, 4]],
        columns=list('AB'))
df2 = pd.DataFrame(
        [[5, 6], [7, 8]],
        columns=list('BC'))

一文搞懂Python中Pandas數據合并

append() 在默認情況下會沿y軸垂直拼接兩個 DataFrame ,df1,df2 交集外的列填充 NaN。

df1.append(df2)

一文搞懂Python中Pandas數據合并

將 ignore_index 設置為 True,來達到重置軸的索引。

df1.append(df2, ignore_index=True)

一文搞懂Python中Pandas數據合并

 

4.join()

join() 用于兩個及多個 DataFrame 間列方向(沿 x 軸)的拼接操作,默認左拼接。

使用方式

df1.join(
  other,
  on=None,
  how='left',
  lsuffix='',
  rsuffix='',
  sort=False)
  • other:指定要添加的數據。DataFrame 或 Series 對象,或這些對象的列表
  • on:連接的列,默認使用索引連接
  • how:{‘left', ‘right', ‘outer', ‘inner'}, 默認為 ‘left',連接的方式
  • lsuffix:默認為空字符串,表示df1中重復列的后綴
  • rsuffix:other中重復列的后綴
  • sort:按照字典順序對結果在連接鍵上排序。如果為False,連接鍵的順序取決于連接類型(關鍵字)。

示例

創建兩個 DataFrame。

df1 = pd.DataFrame(
        {'A': ['A0', 'A1', 'A2', 'A3', 'A4'],
        'val': ['V0', 'V1', 'V2', 'V3', 'V4']})
df2 = pd.DataFrame(
        {'B': ['B3', 'B4', 'B5'],
        'val': ['V3', 'V4', 'V5']})

一文搞懂Python中Pandas數據合并

如果我們想使用 val 列進行連接,我們需要將 val 設置為 df1 和 df2 中的索引。

df1.set_index('val').join(
  df2.set_index('val'))

一文搞懂Python中Pandas數據合并

使用 val 列連接的另一個方法是指定 on 參數。 df1.join 只能使用 df2 的索引,但可以使用 df1 中的任何列。所以可以只將 df2 中的 val 列轉為索引,并通過 on 參數指定 df1 的連接列為 val。

df1.join(
  df2.set_index('val'),
  on='val')

一文搞懂Python中Pandas數據合并

使用外連接的方式連接 df1,df2

df1.join(
  df2.set_index('val'),
  on='val',
  how='outer')

一文搞懂Python中Pandas數據合并

四種方法總結 concat() 可沿任意軸連接 Pandas 對象,并且可在串聯軸上添加一層分層索引join() 主要用于基于行索引進行列的拼接merge() 使用數據庫樣式的連接合并,連接是基于列或索引。一般情況下 append(), join() 可以看成是 concat() 與 merge()的簡易版,參數較少,易用性比較強。

一文搞懂Python中Pandas數據合并

到此這篇關于一文搞懂Python中Pandas數據合并的文章就介紹到這了,更多相關Python Pandas 數據合并內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_43965708/article/details/121505083

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区三区不卡在线观看 | 日本精品久久 | 欧美三区| 久久亚洲天堂 | 亚洲www啪成人一区二区 | 午夜网址 | 国产一区二区三区免费 | 国产精品欧美一区二区三区不卡 | 亚洲第一视频网站 | 亚洲成人自拍 | 免费h | 九九综合九九 | 蜜桃视频网站在线观看 | 三区免费视频 | www.伊人| 亚洲免费婷婷 | 国产精品九九九 | 91亚洲国产成人久久精品网站 | 亚洲视频一区二区三区在线观看 | 精品免费国产 | 国产中文视频 | 黄色毛片视频网站 | 成年人视频在线观看免费 | 亚洲国产精品免费 | 国产精品美女久久久久aⅴ国产馆 | av亚洲在线 | 成人免费视频网 | 在线午夜 | 亚洲精品久久 | 亚洲天天操 | 国产日韩欧美 | 久久精品成人 | 五月天婷婷精品 | 亚洲国产中文字幕 | 亚洲日本欧美日韩高观看 | 6080yy午夜一二三区久久 | 欧美一级片免费在线观看 | 国产成人黄色网址 | 亚洲精品免费在线观看视频 | 国产免费av网站 | 国产精品爱久久久久久久 |