!wget https://github.com/tendo-sms/python_beginner_2023/raw/main/files_4/files.zip . !unzip files.zip !mv files/* . import pandas as pd df_init = pd.read_csv("pandas_sample1.csv") print(df_init) print(df_init) print("変更前のデータフレーム") print(df_init) # 空行の削除 df_empty_line = df_init.dropna(how="all") print("変更後のデータフレーム") print(df_empty_line) print(df_init) print("変更前のデータフレーム") print(df_empty_line) # 重複行の削除 df_dup = df_empty_line.drop_duplicates() print("変更後のデータフレーム") print(df_dup) print("変更前のデータフレーム") print(df_dup) # 行を指定しての削除 df_drop = df_dup.drop(6) print("変更後のデータフレーム") print(df_drop) print("変更前のデータフレーム") print(df_drop) # 欠測値の補完 df_fill_dict = df_drop.fillna({"operator": "NO NAME", "measureValue": 0}) print("変更後のデータフレーム") print(df_fill_dict) print("変更前のデータフレーム") print(df_fill_dict) # データの並べ替え df_sort = df_fill_dict.sort_values(by="measureID") print("変更後のデータフレーム") print(df_sort) print("変更前のデータフレーム") print(df_sort) # インデックスの振り直し df_sort_r = df_sort.reset_index() print("変更後のデータフレーム") print(df_sort_r) print("変更前のデータフレーム") print(df_sort) # インデックスの振り直し df_sort_r = df_sort.reset_index(drop=True) print("変更後のデータフレーム") print(df_sort_r) print("単一の要素を抽出") print(df_sort_r.loc[3, "temperature"]) print("複数要素を抽出") print(df_sort_r.loc[1:3, "operator":"measureValue"]) print("単一の要素を抽出") print(df_sort_r.iloc[3, 3]) print("複数要素を抽出") print(df_sort_r.iloc[1:4, 2:5]) # 先にデータフレームのコピーを作成 df_iloc = df_sort_r.copy() print("変更前のデータフレーム") print(df_iloc) # コピーに対して値の変更を行う df_iloc.iloc[3, 3] = 25 print("変更後のデータフレーム") print(df_iloc) # 先にデータフレームのコピーを作成 df_cadd = df_iloc.copy() print("変更前のデータフレーム") print(df_cadd) # 列の追加 df_cadd["secVal"] =[1000, 999, 5880, 32400, 28800] print("変更後のデータフレーム") print(df_cadd) import pandas as pd df_calc = pd.read_csv("pandas_sample2.csv") print(df_calc) print("列の合計値を計算") print(df_calc.sum(numeric_only=True)) print("列の平均値を計算") print(df_calc.mean(numeric_only=True)) print("列の最大値を計算") print(df_calc.max(numeric_only=True)) import pandas as pd df_calc2 = pd.read_csv("pandas_sample2.csv") print(df_calc2) print("行の合計値を計算") print(df_calc2.sum(axis=1, numeric_only=True)) print("行の平均値を計算") print(df_calc2.mean(axis=1, numeric_only=True)) print("行の最大値を計算") print(df_calc2.max(axis=1, numeric_only=True)) # 辞書を作成する measure_dict = {"date": "2023/1/26", "temperature": "R.T", "operator": "鈴木", "measureValue": 1000, "measureUnit": "sec"} # 辞書の内容を画面に出力する print(measure_dict) # (1) 辞書名[キー名] print("(1) キー名に対応する値を取得する") print(measure_dict["date"]) # (2) 辞書名.get(キー名) print("(2) get(キー名)では存在しないキーを指定するとNoneとなる") print(measure_dict.get("temperature")) print(measure_dict.get("tmp")) # (3) 辞書名.get(キー名、デフォルト値) print("(3) get(キー名, デフォルト値)では存在しないキーを指定するとデフォルト値となる") print(measure_dict.get("measureValue", 0)) print(measure_dict.get("mValue", 0)) # 空の辞書を作成 meta_dict_add = {} print("要素追加前の辞書") print(meta_dict_add) # 要素を追加する meta_dict_add["date"] = "2023/1/26" meta_dict_add["temperature"] = "R.T" meta_dict_add["operator"] = "鈴木" meta_dict_add["measureValue"] = 1000 meta_dict_add["measureUnit"] = "sec" print("要素追加後の辞書") print(meta_dict_add) # 辞書を作成 dict_mod = {"date": "2023/1/26", "temperature": "R.T", "operator": "鈴木", "measureValue": 1000, "measureUnit": "sec"} print("変更前の辞書") print(dict_mod) # 辞書の値を変更 dict_mod["temperature"] = 25 print("変更後の辞書") print(dict_mod) # 辞書を作成 dict_del = {"date": "2023/1/26", "temperature": "R.T", "operator": "鈴木", "measureValue": "1000", "measureUnit": "sec"} print("変更前の辞書") print(dict_del) # 辞書の要素を削除 del dict_del["temperature"] print("変更後の辞書") print(dict_del) # 辞書を作成 meta_dict_clr = {"date": "2023/1/26", "temperature": "R.T", "operator": "鈴木", "measureValue": "1000", "measureUnit": "sec"} print("変更前の辞書") print(meta_dict_clr) # 辞書を空にする meta_dict_clr.clear() print("変更後の辞書") print(meta_dict_clr) # 辞書を作成 meta_dict_del = {"date": "2023/1/26", "temperature": "R.T", "operator": "鈴木", "measureValue": "1000", "measureUnit": "sec"} print("変更前の辞書") print(meta_dict_del) # 存在するキーを指定 ret_value = meta_dict_del.pop("date", "default_value") print("存在するキー(date)を指定 - 戻り値と辞書の内容を確認") print(ret_value) print(meta_dict_del) # 存在しないキーを指定 ret_value = meta_dict_del.pop("datetime", "NOT EXIST") print("存在しないキーを指定 - 戻り値と辞書の内容を確認") print(ret_value) print(meta_dict_del) # 辞書を作成 meta_dict_for = {"date": "2023/1/26", "temperature": "R.T", "operator": "鈴木", "measureValue": "1000", "measureUnit": "sec"} print("(1) キーの一覧を取得") for key in meta_dict_for.keys(): print(key) print("-----------------------------------") print("(2) 値の一覧を取得") for value in meta_dict_for.values(): print(value) print("-----------------------------------") print("(3) キーと値のペアの一覧をタプルで取得") for pair in meta_dict_for.items(): print(pair) # 辞書を作成 meta_dict_for2 = {"date": "2023/1/26", "temperature": "R.T", "operator": "鈴木", "measureValue": "1000", "measureUnit": "sec"} print("(3) キーと値のペアの一覧をタプルで取得") for key, value in meta_dict_for2.items(): print(key) print(value) # リストを作成 columns_list = ["date", "temperature", "operator", "measureValue", "measureUnit"] print("リストの内容を画面に出力する") print(columns_list) print("2番目の要素を取得する") print(columns_list[2]) print("後ろから2番目の要素を取得する") print(columns_list[-2]) print("1番目から3番目の要素を取得する") print(columns_list[1:4]) # 空のリストを作成 list_apd = [] print("要素追加前のリスト") print(list_apd) # 要素を追加する list_apd.append("date") list_apd.append("temperature") list_apd.append("operator") list_apd.append("measureValue") list_apd.append("measureUnit") print("要素追加後のリスト") print(list_apd) list_p1 = ["date", "temperature"] list_p2 = ["operator"] list_p3 = ["measureValue", "measureUnit"] # リストを連結する list_plus = list_p1 + list_p2 + list_p3 # リストの内容の確認 print(list_plus) list_ins = ["date", "temperature", "measureValue", "measureUnit"] print("変更前のリスト") print(list_ins) # リストに値を挿入する list_ins.insert(2, "operator") print("変更後のリスト") print(list_ins) list_inssl = ["date", "temperature", "measureUnit"] print("変更前のリスト") print(list_inssl) # リストに複数の要素を挿入する list_inssl[2:2] = ["operator", "measureValue"] print("変更後のリスト") print(list_inssl) list_mod = ["date", "temperature", "operator", "measureValue", "measureUnit"] print("変更前のリスト") print(list_mod) # リストの値を変更する list_mod[3] = "value" print("変更後のリスト") print(list_mod) list_modsl = ["date", "temperature", "operator", "measureValue", "measureUnit"] print("変更前のリスト") print(list_modsl) # リストの複数の値を変更する list_modsl[2:4] = ["opName", "value"] print("変更後のリスト") print(list_modsl) list_del = ["date", "temperature", "operator", "measureValue", "measureUnit"] print("変更前のリスト") print(list_del) # リストの要素を削除する del list_del[3] print("変更後のリスト") print(list_del) list_delsl = ["date", "temperature", "operator", "measureValue", "measureUnit"] print("変更前のリスト") print(list_delsl) # リストの複数の要素を削除する del list_delsl[2:4] print("変更後のリスト") print(list_delsl) list_remove = ["date", "temperature", "operator", "measureValue", "operator", "measureUnit"] print("変更前のリスト") print(list_remove) # 指定した最初の要素を削除する list_remove.remove("operator") print("変更後のリスト") print(list_remove) list_clr = ["date", "temperature", "operator", "measureValue", "measureUnit"] print("変更前のリスト") print(list_clr) # リストを空にする list_clr.clear() print("変更後のリスト") print(list_clr) list_pop = ["date", "temperature", "operator", "measureValue", "measureUnit"] print("変更前のリスト") print(list_pop) # リストの要素を取り出す pvalue = list_pop.pop(2) print("位置指定あり - 取り出した値と変更後のリスト") print(pvalue) print(list_pop) # リストの末尾の要素を取り出す pvalue = list_pop.pop() print("位置指定なし - 取り出した値と変更後のリスト") print(pvalue) print(list_pop) # 整数の例 value1 = 1 value2 = value1 value2 = 100 print(value1) print(value2) # リストの例 (1) list1 = [1, 2, 3] list2 = list1 list2 = [4, 5, 6] print(list1) print(list2) # リストの例 (2) list3 = [1, 2, 3] list4 = list3 list4[1] = 100 print(list3) print(list4) # リストの例 (copy) list5 = [1, 2, 3] list6 = list5.copy() list6[1] = 100 print(list5) print(list6) rlist1 = [[1, 2, 3], [4, 5, 6]] rlist2 = rlist1.copy() rlist2[1][1] = 100 print(rlist1) print(rlist2) # deepcopy関数はcopyモジュールで提供される from copy import deepcopy rlist3 = [[1, 2, 3], [4, 5, 6]] rlist4 = deepcopy(rlist1) rlist4[1][1] = 100 print(rlist3) print(rlist4)