擅长:python、mysql、java
<p>在我看来,这样做可以更有效率。在</p>
<p>只解析(读取)您真正需要的数据-这将更快,并将显著减少内存消耗。除此之外,使用<code>pd.concat()</code>一次而不是使用<code>df.append()</code>添加每个新的DF应该快得多。在</p>
<p>代码:</p>
<pre><code>import glob
import pandas as pd
def get_merged(files, **kwargs):
return pd.concat([pd.read_csv(f, **kwargs) for f in files], ignore_index=True)
fmask = r'd:/temp/__0?.csv'
files = glob.glob(fmask)
df = get_merged(files, sep='\s*,\s*', usecols=['str2', 'str5'],
skiprows=3, nrows=2)
print(df)
</code></pre>
<p>输出:</p>
^{pr2}$
<p>如果使用Excel文件,只需将<code>read_csv</code>更改为<code>get_merged()</code>函数中的<code>read_excel</code>,并检查<code>nrows</code>参数是否在<code>read_excel()</code>函数中工作</p>
<p>文件:</p>
<p>_uu01.csv:</p>
<pre><code>1, 2, 3, 4, 5
0, 1, 0, 1, 0
0, 1, 0, 1, 0
str1, str2, str3, str4, str5
val1, val1.1, val1.2, val1.3, val1.4
val2, val2.1, val2.2, val2.3, val2.4
..................
.................
..................
..................
</code></pre>
<p>_yu02.csv:</p>
^{4}$