擅长:python、mysql、java
<p>迭代行通常是不好的做法(而且非常慢)。正如@JohnE建议您使用<a href="http://pandas.pydata.org/pandas-docs/version/0.17.1/generated/pandas.DataFrame.applymap.html" rel="nofollow">applymap</a>。在</p>
<p>如果我理解你的问题,我想你想做的是:</p>
<pre><code>import pandas as pd
from io import StringIO
datastring = StringIO("""\
2009 2010 2011 2012
1 4 - 4
3 - 2 3
4 - 8 7
""")
df = pd.read_table(datastring, sep='\s\s+')
a = df[df.applymap(lambda x: x != '-')].astype(np.float).values
a[~np.isnan(a)]
</code></pre>