我有两个不同的数据框,其中一个是另一个的扩展版本。 (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]
答案 0 :(得分:2)
Pandas有一个merge
功能。听起来像这样的东西会起作用......
import pandas as pd
merged_df = pd.merge(sortedregsubjdf, sortedcentralitiesdf, on='Name')