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

打開APP
userphoto
未登錄

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

開通VIP
這次終于一次性把merge()、join()、concat()的區(qū)別講清楚了

介紹

在本文中,我們將討論借助pandas方法組合數(shù)據(jù)框的方法。有時,當(dāng)我們在進(jìn)行一個大型項目并且數(shù)據(jù)來自不同的來源時,我們需要將這些數(shù)據(jù)合并為一個數(shù)據(jù)幀。

pandas中很少有數(shù)據(jù)科學(xué)人員用來使數(shù)據(jù)框架更有價值的方法。

這些方法按行和列相加進(jìn)行劃分。

方法merge()join()使用SQL連接方法方法基于公共鍵和索引工作。

該方法的concat()正在數(shù)據(jù)幀將它們結(jié)合起來,使一個導(dǎo)致數(shù)據(jù)幀。

你可以轉(zhuǎn)到有關(guān)每個需求的系列和數(shù)據(jù)框架的基本文章。

串聯(lián)方法

將兩個數(shù)據(jù)幀組合成一個水平方向。

python示例:

import pandas as pd

為了組合數(shù)據(jù)幀,我們至少需要兩個數(shù)據(jù)幀。

#數(shù)據(jù)幀1
df1 = pd.DataFrame({"C1":["1", "2"], 
                    "C2":["3", "4"],}, 
                   index=[0, 1])
#數(shù)據(jù)幀2
df2 = pd.DataFrame({"C1":["5", "6"], 
                    "C2":["7", "8"],}, 
                   index=[2, 3])
#結(jié)合這兩個數(shù)據(jù)幀
data = [df1,df2]
combined_df = pd.concat(data)combined_df

我們知道,當(dāng)我們水平組合兩個數(shù)據(jù)幀時,列是相同的,并且索引正在增加。

級聯(lián)的論點

  1. Keys參數(shù):它采用序列或不采用序列,并且將密鑰作為層次結(jié)構(gòu)索引傳遞到最外層,如下所示:
key_data = pd.concat(data, keys=["x", "y"])
key_data

現(xiàn)在,我們也可以使用鍵訪問數(shù)據(jù),如示例所示。

key_data.loc["y"]

2. Axis:此參數(shù)用于垂直組合數(shù)據(jù)框架,這意味著要添加更多列,如以下示例所示:

df3 = pd.DataFrame({"C3":["10", "11"], 
                    "C4":["12", "13"],}, 
                   index=[1,2])

在這里,我們給出索引(1,2),但在“ df1”數(shù)據(jù)幀中,索引為(0,1)。因此,結(jié)果將得到一個新行,缺失值填充為“ nan ”。

axis_data = pd.concat([df1, df3], axis=1)
axis_data

3.聯(lián)接:此參數(shù)有兩種聯(lián)接類型,即外部聯(lián)接和內(nèi)部聯(lián)接。默認(rèn)聯(lián)接是外部聯(lián)接,而內(nèi)部聯(lián)接將給出數(shù)據(jù)幀的公共交集,如下所示:

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

結(jié)合數(shù)據(jù)框和系列

這是組合序列和數(shù)據(jù)框的非常有用的方法,如下所示:

series_data = pd.Series(["21", "22"], name="C5")
combine_series = pd.concat([df1, series_data], axis=1)
combine_series

合并方式

與結(jié)構(gòu)化查詢語言(SQL)中的關(guān)系數(shù)據(jù)庫相同,此方法用于連接不同的數(shù)據(jù)幀。

單鍵數(shù)據(jù)幀示例。

on ”參數(shù)用于從兩個數(shù)據(jù)幀中獲取公共列。

left = pd.DataFrame({"keys":["K0", "K1"],
                     "C1":["1", "2"], 
                     "C2":["3", "4"],})
right = pd.DataFrame({"keys":["K0", "K1"],
                      "C3":["10", "11"], 
                      "C4":["12", "13"]})
basic_join = pd.merge(left, right, on="keys")
basic_join

具有兩個關(guān)鍵數(shù)據(jù)幀的示例。

left = pd.DataFrame({"k1": ["A0", "A0", "A1", "A2"],
                     "k2": ["A0", "A1", "A0", "A1"],
                     "A": ["1", "2", "3", "4"],
                     "B": ["5", "6", "7", "8"]})
right = pd.DataFrame({"k1": ["A0", "A1", "A1", "A2"],
                      "k2": ["A0", "A0", "A0", "A0"],
                      "C": ["9", "10", "11", "12"],
                      "D": ["13", "14", "15", "16"]})
two_key_result = pd.merge(left, right, on=["k1", "k2"])
two_key_result

SQL do連接,例如左連接,右連接,內(nèi)部連接和外部連接。這些示例如下所示:

left_result = pd.merge(left, right, how="left", on=["k1", "k2"])
right_result = pd.merge(left, right, how="right", on=["k1", "k2"])
inner_result = pd.merge(left, right, how="inner", on=["k1", "k2"])
outer_result = pd.merge(left, right, how="outer", on=["k1", "k2"])

merge方法包含一個參數(shù),該參數(shù)在結(jié)果數(shù)據(jù)幀中添加帶有信息的分類列,如以下示例所示。

data1 = pd.DataFrame({"C1": [4, 6], "col_left": ["a", "b"]})
data2 = pd.DataFrame({"C1": [6, 3, 3], "col_right": [3, 3, 3]})
#The indicator argument is "True"
pd.merge(data1, data2, on="C1", how="outer", indicator=True)

該方法對于基于左和右數(shù)據(jù)幀組合兩個數(shù)據(jù)幀也很有用。

在此示例中,左側(cè)數(shù)據(jù)比右側(cè)數(shù)據(jù)占主導(dǎo)地位,如下所示:

left = pd.DataFrame({"X1":["1", "2"], 
                     "X2":["3", "4"]}, 
                     index = ["K0", "K1"])
right = pd.DataFrame({"X3":["10", "11"], 
                     "X4":["12", "13"]}, 
                     index = ["K0", "K2"])
result = left.join(right)
result

在下面的示例中,權(quán)限是主要的。

result1 = right.join(left)
result1

我們還可以基于鍵和索引連接兩個數(shù)據(jù)幀,如下所示:

left = pd.DataFrame({"k1": ["A0", "A1", "A0", "A1"],                     
                     "C1": ["1", "2", "3", "4"],
                     "C2": ["5", "6", "7", "8"]})
right = pd.DataFrame({"C3": ["10", "11"], "C4": ["12", "13"]}, index=["A0", "K1"])
result = left.join(right, on="k1")
result

結(jié)論:

本文給出了基于索引,鍵組合數(shù)據(jù)幀的基本思想。數(shù)據(jù)框的組合還適用于將在以后的文章中介紹的多個鍵和索引。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Pandas 合并數(shù)據(jù)集
數(shù)據(jù)分析——Pandas合并數(shù)據(jù),實現(xiàn)多表連接查詢
【Python數(shù)據(jù)挖掘】第二篇
利用python做數(shù)據(jù)分析(四)
在 Pandas 中使用 Merge、Join 、Concat合并數(shù)據(jù)的效率對比
merge
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服