Pandas NameError:name' merge'没有定义

时间:2015-03-09 00:40:41

标签: pandas ipython-notebook

尝试合并两个数据框:

ds.head()给了我:

Out[35]:
yearID  teamID  lgID    playerID    salary
0   1985    BAL AL  murraed02   1472819
1   1985    BAL AL  lynnfr01    1090000
2   1985    BAL AL  ripkeca01   800000
3   1985    BAL AL  lacyle01    725000
4   1985    BAL AL  flanami01   641667

dt [:3]给了我: Screenshot

我需要通过yearID和teamID合并两个表。我这样做:

merge(ds, dt, on='yearID')

为什么我会得到?我无法在线找到此错误的解释' merge'。我不知道它对我有什么要求。理想情况下,我需要合并两个表,并按teamID by yearID对它们进行排序。

NameError                                 Traceback (most recent call last)
<ipython-input-92-2087923fc223> in <module>()
----> 1 merge(ds, dt, on='yearID')

NameError: name 'merge' is not defined

ADDED 03/08 我的目标是合并这两个表来创建一个新表,它将显示每个团队每年的胜利和薪水。 我做的是:

merged = pd.merge(ds, dt, on=['teamID', 'yearID'])
grouped = merged.groupby(['teamID', 'yearID'])
aggregated = grouped.aggregate(np.sum)
aggregated.head()

这是最好的方法吗?在我看来,这不是最好的方法。

谢谢。

1 个答案:

答案 0 :(得分:2)

您收到的错误是因为您没有使用merge方法调用pandas模块。

合并的一个例子是:

import pandas as pd 

merged_df = pd.merge(ds, dt, how='inner',on=['yearID','teamID']) 

我声明了how参数,因此你可以看到你可以根据需要改变它。