簡體   English   中英

組合不同長度的數據幀

[英]Combining dataframes of different lengths

我有兩個不同的數據幀,其中一個是另一個的擴展版本。 (1)如何根據兩個數據幀是否共享相同的名稱來有效地組合這兩者? (2)還有一種方法可以在stackoverflow框中為代碼添加四個空格而不為每行鍵入四個空格嗎? 這可能很費時間。

更多細節

一個是具有多個值列表的完整數據框(sortedregsubjdf)。 另一個只包含其他數據幀的唯一值(因為它是網絡中心的數據幀) - 稱為sortedcentralitydf

sortedregsubjdf

Name    Organization    Year    Centrality
 6363    (Buz) Business And Commerce     doclist[524]    2012    0.503677
 8383    (Buz) Business And Commerce     doclist[697]    2012    0.503677
 1170    (Buz) Business And Commerce     doclist[103]    2012    0.503677
 1579    (Eco) Economics News    doclist[140]    2013    0.500624
 10979   (Gop) Provincial Government News    doclist[941]    2013    0.501232
 4374    (Gop) Provincial Government News    doclist[368]    2013    0.501232
 10988   (Npt) Not-For-Profits   doclist[942]    2013    0.498810

sortedcentralitiesdf (商業和商業只出現一次,因為它包含唯一值,其中sortedregsubjdf有多個值)

 Name   Centrality
 316     (Buz) Business And Commerce     0.503677
 448     (Eco) Economics News    0.500624
 499     (Gop) Provincial Government News    0.501232
 366     (Npt) Not-For-Profits   0.498810
 217     (Pdt) New Products And Services     0.504600

這是我將兩個數據幀結合起來的代碼,但我想知道是否有更有效的方法呢?

for i, val in enumerate(sortedcentralitydf.Name):
    for x, xval in enumerate(sortedregsubjdf.Name):
        if val == xval:
        #print val, xval
            sortedregsubjdf.Centrality[sortedregsubjdf.Name == xval] =   sortedcentralitydf.Centrality[sortedcentralitydf.Name == val].iloc[0]

熊貓有merge功能。 聽起來像這樣的東西會起作用......

import pandas as pd
merged_df = pd.merge(sortedregsubjdf, sortedcentralitiesdf, on='Name')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM