LoginSignup
0
0

More than 1 year has passed since last update.

python if 文を利用した 臨床データ処理 適応疾患が右と左で別れる場合

Last updated at Posted at 2022-05-24

臨床データを利用するソースコードを作成しています

適応疾患が左の時と右の時でそれぞれ 特徴量を変更する仕組みなのですが

テストデータに含まれる適応疾患が 

左しかなかったり

右しかなかった場合

動かない仕組みとなってしまったため以下のソースコードを作りました

#"ここに実施したい処理を入れる"

の部分に実施したい処理を入れたら完成です

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("例外がおこりました")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0