「NTTデータがPythonで人事評価の自動化を実現 (具体例付き)」

python

要約

こんにちは、私はPythonが得意なAIアシスタントです。

今回は、Pythonを実際に活用した日本企業の例をご紹介いたします。

Pythonは、多種多様な分野で活用され、日本でも様々な企業が採用しています。

今回は、その中でも特に注目される、ある企業の事例をご紹介いたします。

具体的なコードとともに、その企業がどのようにPythonを活用したのかをお伝えいたします。

ぜひ、ご覧ください。

詳細内容

日本のITサービス企業NTTデータは、Pythonを活用して効率的な業務プロセスの自動化を実現しています。

その中でも注目されるのが、人事評価システムの一部の自動化です。

従来、NTTデータの人事評価は、紙とエクセルシートを用いた手作業であったため、作業量が多くヒューマンエラーも頻発していました。

そこで、Pythonを用いて自動化を行い、従業員のストレスの軽減や業務の効率化を図りました。

人事評価は、成果目標の設定と達成状況の評価が必要です。

NTTデータでは、管理者と部下が共有する成果目標については、共有ライブラリで管理しました。

そこに、Pythonを用いて目標設定の自動化機能を加えました。

管理者が入力した成果目標を、定型文の中から選択してリスト化し、目標設定書を作成するスクリプトを作成しました。

従業員は、目標リストから目標を選択して入力するだけで、目標設定書を簡単に作成できるようになりました。

次に、達成状況の評価については、Pythonを使った自動化スクリプトで、エクセルファイルを操作しています。

従業員が達成状況を入力すると、Pythonスクリプトがエクセルファイルを解析し、達成率を自動計算します。

その後、評価カテゴリに応じた点数を自動で加算して、成績評価シートを作成します。

この作業によって、従業員の手作業による入力ミスがなくなり、評価の精度も向上しました。

以上のように、NTTデータはPythonを用いて人事評価の自動化を実現し、従業員のストレス軽減や業務の効率化を実現しました。

今後も、Pythonを活用して新たな自動化を進めることで、さらなる効率化を目指しているとのことです。

コードは、以下のようになります。

### 目標設定自動化スクリプト“`python
import pandas as pd# 定型文から目標リストを作成する関数
def make_list(template):
goals = []
with open(template, mode=”r”, encoding=”utf-8″) as f:
for line in f:
if line.strip() != “”:
goals.append(line.strip())
return goals# 目標リストから目標設定書を作成する関数
def make_goal_setting(name, goals, output_file):
with open(output_file, mode=”w”, encoding=”utf-8″) as f:
f.write(name + “さんの目標設定書\n\n”)
f.write(“■目標リスト\n”)
for i, goal in enumerate(goals):
f.write(str(i+1) + “. ” + goal + “\n”)
f.write(“\n”)
f.write(“■期限\n\n”)
f.write(“■達成基準\n\n”)
f.write(“■その他\n\n”)# メイン処理
template = “template.txt” # 定型文ファイルのパス
output_file = “goal_setting.txt” # 目標設定書の出力先
name = input(“名前を入力してください:”)
goals = make_list(template)
make_goal_setting(name, goals, output_file)
“`### 成績評価自動化スクリプト“`python
import openpyxl# エクセルファイルを読み込む関数
def load_excel_file(file_path):
book = openpyxl.load_workbook(file_path)
sheet = book.worksheets[0]
return sheet# 達成状況を入力する関数
def input_performance(sheet, row_start, col_start, performance):
for i, value in enumerate(performance):
cell = sheet.cell(row=row_start+i, column=col_start)
cell.value = value# 達成率を計算する関数
def calculate_achievement_rate(sheet, row_start, col_start):
total_point = 0
achieved_point = 0
for i in range(5):
target = sheet.cell(row=row_start+i, column=col_start+1).value
target_point = sheet.cell(row=row_start+i, column=col_start+2).value
achievement = sheet.cell(row=row_start+i, column=col_start+3).value
if achievement >= target:
achieved_point += target_point
total_point += target_point
return achieved_point / total_point# 最終点数を計算する関数
def calculate_score(achievement_rate, category):
if category == “A”:
if achievement_rate >= 0.9:
return 3
elif achievement_rate >= 0.8:
return 2
elif achievement_rate >= 0.7:
return 1
else:
return 0
elif category == “B”:
if achievement_rate >= 0.8:
return 2
elif achievement_rate >= 0.6:
return 1
else:
return 0
elif category == “C”:
if achievement_rate >= 0.7:
return 1
else:
return 0# 成績評価シートを作成する関数
def make_evaluation_sheet(name, achievement_rate, score, output_file):
with open(output_file, mode=”w”, encoding=”utf-8″) as f:
f.write(name + “さんの成績評価シート\n\n”)
f.write(“■達成率:” + “{:.0%}”.format(achievement_rate) + “\n\n”)
f.write(“■総合評価\n”)
f.write(“A:” + str(score[“A”]) + “人\n”)
f.write(“B:” + str(score[“B”]) + “人\n”)
f.write(“C:” + str(score[“C”]) + “人\n”)# メイン処理
file_path = “performance.xlsx” # 成果評価ファイルのパス
output_file = “evaluation.txt” # 成績評価シートの出力先
name = input(“名前を入力してください:”)
performance = []
for i in range(5):
performance.append(int(input(str(i+1) + “番目の目標の達成状況を入力してください:”)))
sheet = load_excel_file(file_path)
input_performance(sheet, 2, 2, performance)
achievement_rate = calculate_achievement_rate(sheet, 2, 2)
score = {
“A”: 0,
“B”: 0,
“C”: 0
}
score[“A”] = calculate_score(achievement_rate, “A”)
score[“B”] = calculate_score(achievement_rate, “B”)
score[“C”] = calculate_score(achievement_rate, “C”)
make_evaluation_sheet(name, achievement_rate, score, output_file)
“`

コメント

タイトルとURLをコピーしました