<p>尝试遍历每年,过滤数据帧以获得与每个特定年份相关联的字段,然后比较元素是否在stata文件中</p>
<ul>
<li>使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.stata.read_stata.html" rel="nofollow noreferrer">read_stata</a>读取Stata文件:</li>
</ul>
<blockquote>
<pre><code> import pandas as pd
d= pd.stata.read_stata("file")
</code></pre>
</blockquote>
<ul>
<li>读取csv文件,并将其存储在数据框中</li>
</ul>
<blockquote>
<pre><code> import pandas as pd
df= pd.read_csv("file")
</code></pre>
</blockquote>
<ul>
<li>过滤并提取每年的字段。在</li>
</ul>
<blockquote>
<pre><code>df[df["year"]==1993].fields #Output: List of fields in year 1993
</code></pre>
</blockquote>
<p>你可以通过列出年份来概括这个过程</p>
<pre><code>l= df.year
for x in l:
f= df[df["year"]==x].fields
# Then check if f in strata file.
</code></pre>
<p>这里有关于如何<a href="https://stackoverflow.com/questions/26558576/conditional-probability-density-estimation-in-python/26559206#26559206">filter fields using Pandas</a>的详细说明。在</p>
<ul>
<li>将starata字段与您的列表进行比较</li>
</ul>
<p>您可以使用<a href="https://docs.python.org/2/library/functions.html#all" rel="nofollow noreferrer">All()</a>运算符。在</p>
^{pr2}$
<p>如果是真的,那么字段中的所有元素都在strata文件中。在</p>
<p>使一切都成为函数。在</p>
^{3}$
<p><strong>更新</strong></p>
<pre><code>def isInList(x):
return [ x for x in d if x in df[df["year"]==x].fields] == d
</code></pre>