how to understand axis = 0 or 1 in Python
<p>From the documentation, "the first running vertically downwards across rows (axis 0), and the second running horizontally across columns (axis 1)"
And the code is </p>

<pre><code>df1 = pd.DataFrame({"x":[1, 2, 3, 4, 5], 
                    "y":[3, 4, 5, 6, 7]}, 
                   index=['a', 'b', 'c', 'd', 'e'])


df2 = pd.DataFrame({"y":[1, 3, 5, 7, 9], 
                    "z":[9, 8, 7, 6, 5]}, 
                   index=['b', 'c', 'd', 'e', 'f'])
pd.concat([df1, df2], join='inner') # by default axis=0
</code></pre>

<p>since axis=0( which I interpret as column)
 I think concat only considers columns that are found in both dataframes. But the acutal output considers rows that are found in both dataframes.(the only common row element 'y')
So how should I understand axis=0,1 correctly?</p>

<p>Data:</p>

<pre><code>In [55]: df1
Out[55]:
   x  y
a  1  3
b  2  4
c  3  5
d  4  6
e  5  7

In [56]: df2
Out[56]:
   y  z
b  1  9
c  3  8
d  5  7
e  7  6
f  9  5
</code></pre>

<p>Concatenated <strong>horizontally</strong> (axis=1), using <strong>index elements</strong> found in both DFs (aligned by indexes for joining):</p>

<pre><code>In [57]: pd.concat([df1, df2], join='inner', axis=1)
Out[57]:
   x  y  y  z
b  2  4  1  9
c  3  5  3  8
d  4  6  5  7
e  5  7  7  6
</code></pre>

<p>Concatenated <strong>vertically</strong> (DEFAULT: axis=0), using <strong>columns</strong> found in both DFs:</p>

<pre><code>In [58]: pd.concat([df1, df2], join='inner')
Out[58]:
   y
a  3
b  4
c  5
d  6
e  7
b  1
c  3
d  5
e  7
f  9
</code></pre>

<p>If you don't use the <code>inner</code> join method - you will have it this way:</p>

<pre><code>In [62]: pd.concat([df1, df2])
Out[62]:
     x  y    z
a  1.0  3  NaN
b  2.0  4  NaN
c  3.0  5  NaN
d  4.0  6  NaN
e  5.0  7  NaN
b  NaN  1  9.0
c  NaN  3  8.0
d  NaN  5  7.0
e  NaN  7  6.0
f  NaN  9  5.0

In [63]: pd.concat([df1, df2], axis=1)
Out[63]:
     x    y    y    z
a  1.0  3.0  NaN  NaN
b  2.0  4.0  1.0  9.0
c  3.0  5.0  3.0  8.0
d  4.0  6.0  5.0  7.0
e  5.0  7.0  7.0  6.0
f  NaN  NaN  9.0  5.0
</code></pre>

python pandas axis