在python中帮我优化下面的代码,要求最后输出的结果格式对齐,并且文凭一列为中文字符
时间: 2024-02-15 20:02:25 浏览: 147
可以使用 Python 内置的字符串格式化功能,以及 Pandas 库提供的格式化输出函数来优化这段代码,使得最终输出结果对齐并且文凭一列为中文字符。具体实现方法如下:
```python
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 使用字典将英文文凭名称映射为中文名称
degree_map = {
'Bachelor':'学士',
'Master':'硕士',
'PhD':'博士'
}
# 将英文文凭名称替换为中文名称
data['文凭要求'] = data['文凭要求'].map(degree_map)
# 输出预测结果
print('{:<10s}{:<5s}{:<10s}{:<5s}'.format('姓名', '年龄', '分数', '学位'))
print('=' * 35)
for i in range(len(data)):
name = data.iloc[i]['姓名']
age = str(data.iloc[i]['年龄'])
score = str(data.iloc[i]['薪资待遇_平均月薪'])
degree = data.iloc[i]['文凭要求']
print('{:<10s}{:<5s}{:<10s}{:<5s}'.format(name, age, score, degree))
```
以上代码首先使用 Pandas 库读取数据,并使用字典将英文文凭名称映射为中文名称。然后,使用字符串格式化功能将输出结果对齐,并将文凭一列的英文名称替换为中文名称。最后,遍历数据集并按照指定格式输出预测结果。
其中,`'{:<10s}{:<5s}{:<10s}{:<5s}'.format('姓名', '年龄', '分数', '学位')` 表示输出标题行,使用`{:<10s}` 和 `{:<5s}` 来对齐输出结果。`'{:<10s}{:<5s}{:<10s}{:<5s}'.format(name, age, score, degree)` 表示输出每一行数据,同样使用 `{:<10s}` 和 `{:<5s}` 来对齐输出结果。其中,`name`、`age`、`score` 和 `degree` 分别表示数据集中的姓名、年龄、分数和文凭名称。
阅读全文