组合不同长度的数据帧

时间:2014-02-25 16:25:39

标签: python pandas

我有两个不同的数据框,其中一个是另一个的扩展版本。 (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]

1 个答案:

答案 0 :(得分:2)

Pandas有一个merge功能。听起来像这样的东西会起作用......

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