臨床データを利用するソースコードを作成しています
適応疾患が左の時と右の時でそれぞれ 特徴量を変更する仕組みなのですが
テストデータに含まれる適応疾患が
左しかなかったり
右しかなかった場合
動かない仕組みとなってしまったため以下のソースコードを作りました
#"ここに実施したい処理を入れる"
の部分に実施したい処理を入れたら完成です
c_code = "Shift-JIS"
#左とする
num = 'Left'
#疾患〇〇 だけフィルタする
disease = ''
image_file_path = './input/Test_data_input/input_data.csv'
image_file_path2 = './input/columns/columns.csv'
with codecs.open(image_file_path2, "r", c_code, "ignore") as file:
dfpp_c = pd.read_table(file, delimiter=",")
test_columns = dfpp_c
#columns_name =test_columns.columns
#df = pd.read_csv(image_file_path,encoding="SHIFT_JIS",header=None)
df = pd.read_csv(image_file_path,encoding=c_code,header=None)
columns_name =test_columns.columns
columns_name
df.columns = columns_name
df_only = df
df_filters=df_only[df_only.疾患別リハ==disease]
#print("df_filters",df_filters)
# 疾患別リハ 選べるようにする
disease_df=df_filters.drop(['疾患別リハ'], axis=1)
df_or=disease_df
left_disease=df_or[df_or["部位診断"] == "左"]
left_disease
print(len(left_disease))
len_left=len(left_disease)
Right_disease=df_or[df_or["部位診断"] == "右"]
Right_disease
print(len(Right_disease))
len_Right=len(Right_disease)
all_len = len_left * len_Right
if all_len > 0 :
print("leftとrightどちらもデータがあります")
#"ここに実施したい処理を入れる"
elif len_Right == 0:
print("len_left だけで解析を実施します")
#"ここに実施したい処理を入れる"
elif len_left == 0:
print("len_right だけで解析を実施します")
#"ここに実施したい処理を入れる"
else:
print("例外がおこりました")
こちらのサイトを参考にしました
上記のままだと使用しにくいため関数に変更
def make_len_data():
#20220401 変更部分 文字コードを一括で選べるようにした
c_code = "Shift-JIS"
#左とする
num = 'Left'
#脳血管疾患等 だけフィルタする
disease = '脳血管疾患等'
image_file_path = './input/Test_data_input/input_data.csv'
image_file_path2 = './input/columns/columns.csv'
with codecs.open(image_file_path2, "r", c_code, "ignore") as file:
dfpp_c = pd.read_table(file, delimiter=",")
test_columns = dfpp_c
#columns_name =test_columns.columns
#df = pd.read_csv(image_file_path,encoding="SHIFT_JIS",header=None)
df = pd.read_csv(image_file_path,encoding=c_code,header=None)
columns_name =test_columns.columns
columns_name
df.columns = columns_name
df_only = df
df_filters=df_only[df_only.疾患別リハ==disease]
#print("df_filters",df_filters)
# 疾患別リハ 選べるようにする
disease_df=df_filters.drop(['疾患別リハ'], axis=1)
df_or=disease_df
left_disease=df_or[df_or["部位診断"] == "左"]
left_disease
print(len(left_disease))
len_left=len(left_disease)
Right_disease=df_or[df_or["部位診断"] == "右"]
Right_disease
print(len(Right_disease))
len_Right=len(Right_disease)
all_len = len_left * len_Right
return all_len,len_Right,len_left
all_len,len_Right,len_left=make_len_data()
if all_len > 0 :
print("leftとrightどちらもデータがあります")
elif len_Right == 0:
print("len_left だけで解析を実施します")
elif len_left == 0:
print("len_right だけで解析を実施します")
else:
print("例外がおこりました")