<p>使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html" rel="nofollow noreferrer">apply</a>函数</p>
<p><strong>代码</strong></p>
<pre><code>def add_grades(filenm):
''' Add Grades column to CSV file '''
def mark_to_score(marks):
" Converts a mark to a grade "
if marks > 80:
return "Distinguished"
elif 50 <= marks < 80:
return "First Class"
elif 35 <= marks < 50:
return "Second Class"
else:
return "Failed"
# Read CSV file into pandas dataframe
# CSV file is space delimited
df = pd.read_csv(filenm, delimiter=r"\s+")
# Create Grades column
df['Grades'] = df['Marks'].apply(mark_to_score)
# Apply to function to Marks column to obtain grades
df['Grades'] = df['Marks'].apply(mark_to_score)
# Write output back to CSV (space delimited)
df.to_csv(filenm, sep=' ')
</code></pre>
<p><strong>用法</strong></p>
<p>添加等级('CSV文件名.txt')</p>
<p><strong>测试</strong></p>
<p>输入文件('grades.txt'):</p>
<pre><code> Students Marks
0 Santosh 90
1 Mahesh 35
2 Suresh 15
3 Ganesh 45
4 Ramesh 60
5 Supriya 25
6 Ritesh 50
7 Pooja 95
</code></pre>
<p>输出文件('grades.txt')</p>
<pre><code> Students Marks Grades
0 Santosh 90 Distinguished
1 Mahesh 35 "Second Class"
2 Suresh 15 Failed
3 Ganesh 45 "Second Class"
4 Ramesh 60 "First Class"
5 Supriya 25 Failed
6 Ritesh 50 "First Class"
7 Pooja 95 Distinguished
</code></pre>
<p>注:成绩栏中的多个单词(如“第一类”)都在引号中,否则单词中的空格会被误认为是分隔符</p>