擅长:python、mysql、java
<p>忘掉<code>merge</code>。可能是因为我使用了很多数据库,但我更喜欢dataframe的<code>join</code>方法,而且我更喜欢为每个数据帧定义索引。像这样:</p>
<pre><code>In [97]: df1 = pandas.DataFrame(np.random.normal(size=(5,2), loc=30), columns=['x','y'], index=list('abcde'))
In [98]: df1.index.name = 'DTRACT'
In [99]: df1
Out[99]:
x y
DTRACT
a 29.804012 28.999263
b 29.933187 29.602694
c 29.269713 28.577094
d 29.857837 29.634982
e 29.751243 29.020471
In [100]: df2 = pandas.DataFrame(np.random.random_integers(0, high=20, size=(5,2)), columns=['A', 'B'], index=list('bcdef'))
In [101]: df2.index.name = 'DTRACT'
In [102]: df2
Out[102]:
A B
DTRACT
b 9 12
c 16 1
d 19 20
e 11 20
f 10 15
In [103]: df1.join(df2, how='outer')
Out[103]:
x y A B
DTRACT
a 29.804012 28.999263 NaN NaN
b 29.933187 29.602694 9 12
c 29.269713 28.577094 16 1
d 29.857837 29.634982 19 20
e 29.751243 29.020471 11 20
f NaN NaN 10 15
</code></pre>
<p>希望这能有所帮助。在</p>