<p>这是<a href="https://pandas.pydata.org/pandas-docs/stable/index.html" rel="nofollow noreferrer">^{<cd1>}</a>的理想用例:</p>
<pre><code>import pandas as pd
id_list = ['KTD684']
df = pd.read_csv('input.csv')
# Only keep values that are in 'id_list'
df = df[df['ID'].isin(id_list)]
gb = df.groupby('ID')
for name, group in gb:
with open('{}.csv'.format(name), 'a') as f:
group.to_csv(f, header=False, index=False,
columns=["Date", "Prj1_Assigned", "Prj1_closed",
"Prj2_assigned", "Prj2_solved"])
</code></pre>
<p>这将打开CSV,只选择列表中的行(<code>id_list</code>),按<code>ID</code>列中的值分组,并为每个唯一的<code>ID</code>保存单个CSV文件。您只需要展开<code>id_list</code>就可以得到您感兴趣的id。你知道吗</p>
<hr/>
<h3>扩展示例:</h3>
<p>读取CSV会产生如下DataFrame对象:</p>
<pre><code>df = pd.read_csv('input.csv')
Name ID Title Date Prj1_Assigned \
0 Joshua Morales MF6B9X Tech_Rep 08-Nov-2016 948
1 Betty García ERTW77 SME 08-Nov-2016 965
2 Kathleen Marrero KTD684 Probation 08-Nov-2016 946
3 Mark León GSL89D Tech_Rep 08-Nov-2016 951
Prj1_closed Prj2_assigned Prj2_solved
0 740 8 8
1 854 15 12
2 948 na na
3 844 6 4
</code></pre>
<p>如果您只选择<code>KTD684</code>和<code>GSL89D</code>:</p>
<pre><code>id_list = ['KTD684', 'GSL89D']
df = df[df['ID'].isin(id_list)]
Name ID Title Date Prj1_Assigned \
2 Kathleen Marrero KTD684 Probation 08-Nov-2016 946
3 Mark León GSL89D Tech_Rep 08-Nov-2016 951
Prj1_closed Prj2_assigned Prj2_solved
2 948 na na
3 844 6 4
</code></pre>
<p><code>groupby</code>操作对<code>ID</code>进行分组,并将每个唯一的ID导出到CSV文件,结果是:</p>
<pre><code>KTD684.csv
Date,Prj1_Assigned,Prj1_closed,Prj2_assigned,Prj2_solved
08-Nov-2016,946,948,na,na
GSL89D.csv
Date,Prj1_Assigned,Prj1_closed,Prj2_assigned,Prj2_solved
08-Nov-2016,951,844,6,4
</code></pre>