Last active
June 10, 2022 17:14
-
-
Save YourHeroKominato/48e4c554f53ab26a4c47cffccc3ff5e6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 722, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Importing the modules\n", | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"import openpyxl\n", | |
"\n", | |
"import os\n", | |
"import sys\n", | |
"from bs4 import BeautifulSoup\n", | |
"\n", | |
"from IPython.display import display" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Loading and displaying data / データの読み込みと表示" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 723, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_A:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>No.</th>\n", | |
" <th>Results</th>\n", | |
" <th>Deck name</th>\n", | |
" <th>Date</th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" <th>All turn</th>\n", | |
" <th>First Turn</th>\n", | |
" <th>First Card</th>\n", | |
" <th>Second Card</th>\n", | |
" <th>Third Card</th>\n", | |
" <th>Fourth Card</th>\n", | |
" <th>Fifth card</th>\n", | |
" <th>Sixth card</th>\n", | |
" <th>N of Handtrap</th>\n", | |
" <th>N of monsters</th>\n", | |
" <th>Opponents deck name</th>\n", | |
" <th>N of Opponents handtrap</th>\n", | |
" <th>Rank</th>\n", | |
" <th>Tier</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1</td>\n", | |
" <td>Win</td>\n", | |
" <td>valet without maid</td>\n", | |
" <td>2022-03-02 00:00:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>23:14:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1</td>\n", | |
" <td>セイファート</td>\n", | |
" <td>コラブサーペント</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2</td>\n", | |
" <td>Win</td>\n", | |
" <td>valet without maid</td>\n", | |
" <td>2022-03-02 00:00:00</td>\n", | |
" <td>23:28:00</td>\n", | |
" <td>00:02:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0</td>\n", | |
" <td>原始生命体ニビル</td>\n", | |
" <td>暗黒竜コラプサーペント</td>\n", | |
" <td>カオス・テリトリー</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>サイフレームギア・ドライバー</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>増殖するG, 灰流うらら\\n灰流うらら</td>\n", | |
" <td>G</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" No. Results Deck name Date Datetime(start) \\\n", | |
"0 1 Win valet without maid 2022-03-02 00:00:00 NaN \n", | |
"1 2 Win valet without maid 2022-03-02 00:00:00 23:28:00 \n", | |
"\n", | |
" Datetime(end) All turn First Turn First Card Second Card Third Card \\\n", | |
"0 23:14:00 NaN 1 セイファート コラブサーペント ヴァレット・トレーサー \n", | |
"1 00:02:00 NaN 0 原始生命体ニビル 暗黒竜コラプサーペント カオス・テリトリー \n", | |
"\n", | |
" Fourth Card Fifth card Sixth card N of Handtrap N of monsters \\\n", | |
"0 龍の鏡 マスク・チェンジ・セカンド NaN NaN NaN \n", | |
"1 星遺物の守護竜 サイフレームギア・ドライバー クイック・リボルブ NaN NaN \n", | |
"\n", | |
" Opponents deck name N of Opponents handtrap Rank Tier \n", | |
"0 閃刀姫 NaN G 4 \n", | |
"1 閃刀姫 増殖するG, 灰流うらら\\n灰流うらら G 4 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_B:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>No.</th>\n", | |
" <th>Rank</th>\n", | |
" <th>Result</th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" <th>Sum_turn</th>\n", | |
" <th>First_turn</th>\n", | |
" <th>First_card</th>\n", | |
" <th>Second_card</th>\n", | |
" <th>Third_card</th>\n", | |
" <th>Fourth_card</th>\n", | |
" <th>Fifth_card</th>\n", | |
" <th>Opp_decktype</th>\n", | |
" <th>Opp_handtrap</th>\n", | |
" <th>Opp's handtrap</th>\n", | |
" <th>Property</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>21</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 9, 2022</td>\n", | |
" <td>@March 6, 2022 3:00 AM</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Turn2</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ブレイクスルー・スキル</td>\n", | |
" <td>サンダー・ボルト</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>転生炎獣</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>22</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 6, 2022</td>\n", | |
" <td>@March 6, 2022 3:08 AM</td>\n", | |
" <td>2.0</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>暗黒竜 コラプサーペント</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>30</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 8, 2022 11:45 PM</td>\n", | |
" <td>@March 8, 2022 12:00 AM</td>\n", | |
" <td>2.0</td>\n", | |
" <td>Turn2</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>輝光竜セイファート</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>ヴァレット・リチャージャー</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>絵札の三銃士</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>31</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 9, 2022 12:20 AM</td>\n", | |
" <td>@March 9, 2022 12:44 AM</td>\n", | |
" <td>3.0</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>ギャラクシー</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>32</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 9, 2022 12:43 AM</td>\n", | |
" <td>@March 9, 2022 1:07 AM</td>\n", | |
" <td>7.0</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>罠バーン</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" No. Rank Result Datetime(start) Datetime(end) Sum_turn \\\n", | |
"0 21 G2 Win @March 9, 2022 @March 6, 2022 3:00 AM NaN \n", | |
"1 22 G2 Win @March 6, 2022 @March 6, 2022 3:08 AM 2.0 \n", | |
"2 30 G2 Win @March 8, 2022 11:45 PM @March 8, 2022 12:00 AM 2.0 \n", | |
"3 31 G2 Win @March 9, 2022 12:20 AM @March 9, 2022 12:44 AM 3.0 \n", | |
"4 32 G2 Win @March 9, 2022 12:43 AM @March 9, 2022 1:07 AM 7.0 \n", | |
"\n", | |
" First_turn First_card Second_card Third_card Fourth_card \\\n", | |
"0 Turn2 PSYフレームギア・γ 墓穴の指名者 ブレイクスルー・スキル サンダー・ボルト \n", | |
"1 Turn1 増殖するG PSYフレーム・ドライバー 増殖するG 暗黒竜 コラプサーペント \n", | |
"2 Turn2 リボルブート・セクター 輝光竜セイファート 王宮の勅命 ヴァレット・リチャージャー \n", | |
"3 Turn1 リボルブート・セクター ヴァレット・トレーサー 混沌領域 王宮の勅命 \n", | |
"4 Turn1 クイック・リボルブ メタルヴァレット・ドラゴン 灰流うらら ヴァレット・トレーサー \n", | |
"\n", | |
" Fifth_card Opp_decktype Opp_handtrap Opp's handtrap Property \n", | |
"0 ヴァレット・シンクロン 転生炎獣 NaN NaN NaN \n", | |
"1 クイック・リボルブ ブルーアイズ 0.0 NaN NaN \n", | |
"2 ヴァレット・トレーサー 絵札の三銃士 0.0 NaN NaN \n", | |
"3 メタルヴァレット・ドラゴン ギャラクシー 0.0 NaN NaN \n", | |
"4 ヴァレット・トレーサー 罠バーン 0.0 NaN NaN " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#look at raw data and plan cleaning\n", | |
"\n", | |
"df_A = pd.read_excel('MasterDuel_1-20.xlsx', sheet_name='Sheet1')\n", | |
"\n", | |
"#creating function to display tables in advance\n", | |
"def show_df_A(n):\n", | |
" print(\"\\n df_A:\\n\")\n", | |
" display(df_A.head(n))\n", | |
"\n", | |
"show_df_A(2)\n", | |
"\n", | |
"df_B = pd.read_csv('MasterDuel_21-50.csv')\n", | |
"\n", | |
"#creating function to display tables in advance\n", | |
"def show_df_B(n):\n", | |
" print(\"\\n df_B:\\n\")\n", | |
" display(df_B.head(n))\n", | |
"\n", | |
"show_df_B(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Plan how to clean / データの整形方法を計画" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"* Issues / 課題:\n", | |
" - Unimportant rows or columns / 重要でない行や列:\n", | |
" - Naming and merging columns correctly / カラムの命名と結合を正しく行う :\n", | |
" - Some column name is not consistent / 一部のカラム名が統一されていない\n", | |
" - Date and timestamp value needs to be merged / 日付とタイムスタンプの値を統合する必要\n", | |
" - Inconsistent data formats / 一貫性のないデータフォーマット :\n", | |
" - Null data, Some records have missing value / 一部のレコードに値がない\n", | |
" - Datetime values are broken / Datetimeの値が壊れています" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"* Data cleaning steps / データクリーニングの手順:\n", | |
"\n", | |
"1. Decide which columns to use and define table columns. / 使用する列を決定し、テーブルの列を定義する。\n", | |
"\n", | |
"2. Delete unnecessary columns. / 不要な列を削除する。\n", | |
"\n", | |
"3. Merge, separate or rename columns. / 列を結合したり、分離したり、名前を変えたり\n", | |
"\n", | |
" Format value. / データをフォーマット化する。\n", | |
"\n", | |
"4. Combine two dataframe into one. / ふたつのデータフレームをひとつに。" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 1. Decide which columns to use and define table columns. / 使用する列を決定し、テーブルの列を定義する。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 724, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" Unmatched column name:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"{'All turn',\n", | |
" 'Date',\n", | |
" 'Deck name',\n", | |
" 'Fifth card',\n", | |
" 'Fifth_card',\n", | |
" 'First Card',\n", | |
" 'First Turn',\n", | |
" 'First_card',\n", | |
" 'First_turn',\n", | |
" 'Fourth Card',\n", | |
" 'Fourth_card',\n", | |
" 'N of Handtrap',\n", | |
" 'N of Opponents handtrap',\n", | |
" 'N of monsters',\n", | |
" \"Opp's handtrap\",\n", | |
" 'Opp_decktype',\n", | |
" 'Opp_handtrap',\n", | |
" 'Opponents deck name',\n", | |
" 'Property',\n", | |
" 'Result',\n", | |
" 'Results',\n", | |
" 'Second Card',\n", | |
" 'Second_card',\n", | |
" 'Sixth card',\n", | |
" 'Sum_turn',\n", | |
" 'Third Card',\n", | |
" 'Third_card',\n", | |
" 'Tier'}" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" Matched column name:{'Rank', 'No.', 'Datetime(end)', 'Datetime(start)'}\n", | |
"\n", | |
"\n", | |
" compare column name:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>A</th>\n", | |
" <th>B</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>No.</td>\n", | |
" <td>No.</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>Results</td>\n", | |
" <td>Rank</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>Deck name</td>\n", | |
" <td>Result</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Date</td>\n", | |
" <td>Datetime(start)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Datetime(start)</td>\n", | |
" <td>Datetime(end)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>Datetime(end)</td>\n", | |
" <td>Sum_turn</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>All turn</td>\n", | |
" <td>First_turn</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>First Turn</td>\n", | |
" <td>First_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>First Card</td>\n", | |
" <td>Second_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>Second Card</td>\n", | |
" <td>Third_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>Third Card</td>\n", | |
" <td>Fourth_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>Fourth Card</td>\n", | |
" <td>Fifth_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>Fifth card</td>\n", | |
" <td>Opp_decktype</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>Sixth card</td>\n", | |
" <td>Opp_handtrap</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>N of Handtrap</td>\n", | |
" <td>Opp's handtrap</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>N of monsters</td>\n", | |
" <td>Property</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>Opponents deck name</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>N of Opponents handtrap</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>Rank</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>Tier</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B\n", | |
"0 No. No.\n", | |
"1 Results Rank\n", | |
"2 Deck name Result\n", | |
"3 Date Datetime(start)\n", | |
"4 Datetime(start) Datetime(end)\n", | |
"5 Datetime(end) Sum_turn\n", | |
"6 All turn First_turn\n", | |
"7 First Turn First_card\n", | |
"8 First Card Second_card\n", | |
"9 Second Card Third_card\n", | |
"10 Third Card Fourth_card\n", | |
"11 Fourth Card Fifth_card\n", | |
"12 Fifth card Opp_decktype\n", | |
"13 Sixth card Opp_handtrap\n", | |
"14 N of Handtrap Opp's handtrap\n", | |
"15 N of monsters Property\n", | |
"16 Opponents deck name NaN\n", | |
"17 N of Opponents handtrap NaN\n", | |
"18 Rank NaN\n", | |
"19 Tier NaN" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#define function to use it later \n", | |
"def compare_columns(A,B):\n", | |
" A_col = A.columns.values.tolist()\n", | |
" B_col = B.columns.values.tolist()\n", | |
"\n", | |
" #show unmatched column between two tables\n", | |
" diff = set(A_col) ^ set(B_col)\n", | |
" print(\"\\n Unmatched column name:\\n\")\n", | |
" display(diff)\n", | |
"\n", | |
" #show which column has a common name with the other table.\n", | |
" common = set(A_col) & set(B_col)\n", | |
" print(\"\\n Matched column name:{}\\n\".format(common))\n", | |
"\n", | |
" #Line up column name\n", | |
" s1 = pd.Series(A_col, name='A')\n", | |
" s2 = pd.Series(B_col, name='B')\n", | |
" compare_col = pd.concat([s1, s2], axis=1)\n", | |
" print(\"\\n compare column name:\\n\")\n", | |
" display(compare_col)\n", | |
"\n", | |
"compare_columns(df_A, df_B)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 2. Delete unnecessary columns / 不要な列を削除する" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 725, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# delete multiple colunms\n", | |
"df_A = df_A.drop(['Deck name','All turn','Sixth card','N of Handtrap','N of monsters'], axis=1)\n", | |
"df_B = df_B.drop('Sum_turn', axis=1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 3. Merge, separate or rename columns. / 列をマージしたり、分離したり。\n", | |
"### Format value. / データをフォーマット化する。" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##### Start from datetime related columns. / Datetimeと関連した列から始める。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 726, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_A:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Date</th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>2022-03-02 00:00:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>23:14:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2022-03-02 00:00:00</td>\n", | |
" <td>23:28:00</td>\n", | |
" <td>00:02:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2022-03-02 00:00:00</td>\n", | |
" <td>00:03:00</td>\n", | |
" <td>00:08:00</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Date Datetime(start) Datetime(end)\n", | |
"0 2022-03-02 00:00:00 NaN 23:14:00\n", | |
"1 2022-03-02 00:00:00 23:28:00 00:02:00\n", | |
"2 2022-03-02 00:00:00 00:03:00 00:08:00" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_B:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>@March 9, 2022</td>\n", | |
" <td>@March 6, 2022 3:00 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>@March 6, 2022</td>\n", | |
" <td>@March 6, 2022 3:08 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>@March 8, 2022 11:45 PM</td>\n", | |
" <td>@March 8, 2022 12:00 AM</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Datetime(start) Datetime(end)\n", | |
"0 @March 9, 2022 @March 6, 2022 3:00 AM\n", | |
"1 @March 6, 2022 @March 6, 2022 3:08 AM\n", | |
"2 @March 8, 2022 11:45 PM @March 8, 2022 12:00 AM" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"print(\"\\n df_A:\\n\")\n", | |
"display(df_A[['Date', 'Datetime(start)','Datetime(end)']].head(3))\n", | |
"print(\"\\n df_B:\\n\")\n", | |
"display(df_B[['Datetime(start)', 'Datetime(end)']].head(3))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Since I found that the data contained empty string, I had to turn those to NaN value.\n", | |
"<- Otherwise, the functions won't work\n", | |
"\n", | |
"空文字列が含まれていることがわかったので、それをNaN値にしておく必要がある。\n", | |
"<-そうしないと以降の、関数が動作しない。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 727, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_B:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>No.</th>\n", | |
" <th>Rank</th>\n", | |
" <th>Result</th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" <th>First_turn</th>\n", | |
" <th>First_card</th>\n", | |
" <th>Second_card</th>\n", | |
" <th>Third_card</th>\n", | |
" <th>Fourth_card</th>\n", | |
" <th>Fifth_card</th>\n", | |
" <th>Opp_decktype</th>\n", | |
" <th>Opp_handtrap</th>\n", | |
" <th>Opp's handtrap</th>\n", | |
" <th>Property</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>21</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 9, 2022</td>\n", | |
" <td>@March 6, 2022 3:00 AM</td>\n", | |
" <td>Turn2</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ブレイクスルー・スキル</td>\n", | |
" <td>サンダー・ボルト</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>転生炎獣</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>22</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 6, 2022</td>\n", | |
" <td>@March 6, 2022 3:08 AM</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>暗黒竜 コラプサーペント</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>30</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 8, 2022 11:45 PM</td>\n", | |
" <td>@March 8, 2022 12:00 AM</td>\n", | |
" <td>Turn2</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>輝光竜セイファート</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>ヴァレット・リチャージャー</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>絵札の三銃士</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>31</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 9, 2022 12:20 AM</td>\n", | |
" <td>@March 9, 2022 12:44 AM</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>ギャラクシー</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>32</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 9, 2022 12:43 AM</td>\n", | |
" <td>@March 9, 2022 1:07 AM</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>罠バーン</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>33</td>\n", | |
" <td>G2</td>\n", | |
" <td>Win</td>\n", | |
" <td>@March 9, 2022 1:09 AM</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Turn2</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ブラック・マジシャン</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" No. Rank Result Datetime(start) Datetime(end) \\\n", | |
"0 21 G2 Win @March 9, 2022 @March 6, 2022 3:00 AM \n", | |
"1 22 G2 Win @March 6, 2022 @March 6, 2022 3:08 AM \n", | |
"2 30 G2 Win @March 8, 2022 11:45 PM @March 8, 2022 12:00 AM \n", | |
"3 31 G2 Win @March 9, 2022 12:20 AM @March 9, 2022 12:44 AM \n", | |
"4 32 G2 Win @March 9, 2022 12:43 AM @March 9, 2022 1:07 AM \n", | |
"5 33 G2 Win @March 9, 2022 1:09 AM NaN \n", | |
"\n", | |
" First_turn First_card Second_card Third_card Fourth_card \\\n", | |
"0 Turn2 PSYフレームギア・γ 墓穴の指名者 ブレイクスルー・スキル サンダー・ボルト \n", | |
"1 Turn1 増殖するG PSYフレーム・ドライバー 増殖するG 暗黒竜 コラプサーペント \n", | |
"2 Turn2 リボルブート・セクター 輝光竜セイファート 王宮の勅命 ヴァレット・リチャージャー \n", | |
"3 Turn1 リボルブート・セクター ヴァレット・トレーサー 混沌領域 王宮の勅命 \n", | |
"4 Turn1 クイック・リボルブ メタルヴァレット・ドラゴン 灰流うらら ヴァレット・トレーサー \n", | |
"5 Turn2 灰流うらら 輝白竜 ワイバースター PSYフレーム・ドライバー リボルブート・セクター \n", | |
"\n", | |
" Fifth_card Opp_decktype Opp_handtrap Opp's handtrap Property \n", | |
"0 ヴァレット・シンクロン 転生炎獣 NaN NaN NaN \n", | |
"1 クイック・リボルブ ブルーアイズ 0.0 NaN NaN \n", | |
"2 ヴァレット・トレーサー 絵札の三銃士 0.0 NaN NaN \n", | |
"3 メタルヴァレット・ドラゴン ギャラクシー 0.0 NaN NaN \n", | |
"4 ヴァレット・トレーサー 罠バーン 0.0 NaN NaN \n", | |
"5 墓穴の指名者 ブラック・マジシャン 0.0 NaN NaN " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# turn empty string to NaN\n", | |
"df_A = df_A.replace(r'^\\s*$', np.nan, regex=True)\n", | |
"df_B = df_B.replace(r'^\\s*$', np.nan, regex=True)\n", | |
"show_df_B(6)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For df_A:\n", | |
"\n", | |
"Column name: Date\n", | |
"\n", | |
"-> leave out h, min, sec. / 時、分、秒を除外する。\n", | |
"\n", | |
"Column name: Datetime(start), Datetime(end)\n", | |
"\n", | |
"-> Format value to dateime. / 値をdatetimeにフォーマットする " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For df_B:\n", | |
"\n", | |
"Column name: Datetime(start), Datetime(end)\n", | |
"\n", | |
"-> Take out mm,dd, and then turn it to column 'date'/ mm,ddを取り出し、列「date」にする。\n", | |
"\n", | |
"-> Format value to dateime / 値をdatetimeにフォーマットする " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"* df_A['Date']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 728, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 2022-03-02 00:00:00\n", | |
"1 2022-03-02 00:00:00\n", | |
"2 2022-03-02 00:00:00\n", | |
"3 44623\n", | |
"4 44623\n", | |
"5 44623\n", | |
"6 44625\n", | |
"7 44625\n", | |
"8 44625\n", | |
"9 2022-03-05 00:00:00\n", | |
"10 2022-03-05 00:00:00\n", | |
"11 2022-03-05 00:00:00\n", | |
"12 2022-03-05 00:00:00\n", | |
"13 2022-03-05 00:00:00\n", | |
"14 2022-03-05 00:00:00\n", | |
"15 2022-03-06 00:00:00\n", | |
"16 2022-03-06 00:00:00\n", | |
"17 2022-03-06 00:00:00\n", | |
"18 2022-03-06 00:00:00\n", | |
"19 2022-03-06 00:00:00\n", | |
"Name: Date, dtype: object" | |
] | |
}, | |
"execution_count": 728, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df_A['Date']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 729, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 March 02, 2022\n", | |
"1 March 02, 2022\n", | |
"2 March 02, 2022\n", | |
"3 March 03, 2022\n", | |
"4 March 03, 2022\n", | |
"5 March 03, 2022\n", | |
"6 March 05, 2022\n", | |
"7 March 05, 2022\n", | |
"8 March 05, 2022\n", | |
"9 March 05, 2022\n", | |
"10 March 05, 2022\n", | |
"11 March 05, 2022\n", | |
"12 March 05, 2022\n", | |
"13 March 05, 2022\n", | |
"14 March 05, 2022\n", | |
"15 March 06, 2022\n", | |
"16 March 06, 2022\n", | |
"17 March 06, 2022\n", | |
"18 March 06, 2022\n", | |
"19 March 06, 2022\n", | |
"Name: Date, dtype: object" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from datetime import datetime, timedelta\n", | |
"\n", | |
"m = df_A['Date'].astype(str).str.isdigit()\n", | |
"\n", | |
"def from_excel_ordinal(ordinal: float, _epoch0=datetime(1899, 12, 31)) -> datetime:\n", | |
" if ordinal >= 60:\n", | |
" ordinal -= 1 # Excel leap year bug, 1900 is not a leap year!\n", | |
" return (_epoch0 + timedelta(days=ordinal)).replace(microsecond=0)\n", | |
"\n", | |
"df_A.loc[m, 'Date'] = \\\n", | |
"df_A.loc[m, 'Date']\\\n", | |
" .astype(int)\\\n", | |
" .apply(from_excel_ordinal)\n", | |
"\n", | |
"df_A['Date'] = pd.to_datetime(df_A['Date'], errors='coerce').dt.strftime('%B %d, %Y') #Using errors='coerce'. It will replace all non-numeric values with NaN. \n", | |
"display(df_A['Date'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"* df_A['Datetime(start)'], df_A['Datetime(end)']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 730, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>NaN</td>\n", | |
" <td>23:14:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>23:28:00</td>\n", | |
" <td>00:02:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>00:03:00</td>\n", | |
" <td>00:08:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>11:00:00</td>\n", | |
" <td>11:15:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>11:15:00</td>\n", | |
" <td>11:25:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>11:25:00</td>\n", | |
" <td>11:30:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>02:02:00</td>\n", | |
" <td>02:22:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>02:22:00</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>02:30:00</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>02:43:00</td>\n", | |
" <td>03:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>15:47:00</td>\n", | |
" <td>16:06:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>16:07:00</td>\n", | |
" <td>16:15:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>NaN</td>\n", | |
" <td>17:52:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>NaN</td>\n", | |
" <td>02:01:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>NaN</td>\n", | |
" <td>02:11:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>NaN</td>\n", | |
" <td>02:29:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>NaN</td>\n", | |
" <td>02:37:00</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Datetime(start) Datetime(end)\n", | |
"0 NaN 23:14:00\n", | |
"1 23:28:00 00:02:00\n", | |
"2 00:03:00 00:08:00\n", | |
"3 11:00:00 11:15:00\n", | |
"4 11:15:00 11:25:00\n", | |
"5 11:25:00 11:30:00\n", | |
"6 NaN NaN\n", | |
"7 NaN NaN\n", | |
"8 02:02:00 02:22:00\n", | |
"9 02:22:00 NaN\n", | |
"10 02:30:00 NaN\n", | |
"11 02:43:00 03:00:00\n", | |
"12 15:47:00 16:06:00\n", | |
"13 16:07:00 16:15:00\n", | |
"14 NaN 17:52:00\n", | |
"15 NaN NaN\n", | |
"16 NaN 02:01:00\n", | |
"17 NaN 02:11:00\n", | |
"18 NaN 02:29:00\n", | |
"19 NaN 02:37:00" | |
] | |
}, | |
"execution_count": 730, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df_A[['Datetime(start)','Datetime(end)']]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 731, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_A:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>No.</th>\n", | |
" <th>Results</th>\n", | |
" <th>Date</th>\n", | |
" <th>Time(start)</th>\n", | |
" <th>Time(end)</th>\n", | |
" <th>First Turn</th>\n", | |
" <th>First Card</th>\n", | |
" <th>Second Card</th>\n", | |
" <th>Third Card</th>\n", | |
" <th>Fourth Card</th>\n", | |
" <th>Fifth card</th>\n", | |
" <th>Opponents deck name</th>\n", | |
" <th>N of Opponents handtrap</th>\n", | |
" <th>Rank</th>\n", | |
" <th>Tier</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1</td>\n", | |
" <td>Win</td>\n", | |
" <td>March 02, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>23:14:00</td>\n", | |
" <td>1</td>\n", | |
" <td>セイファート</td>\n", | |
" <td>コラブサーペント</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2</td>\n", | |
" <td>Win</td>\n", | |
" <td>March 02, 2022</td>\n", | |
" <td>23:28:00</td>\n", | |
" <td>00:02:00</td>\n", | |
" <td>0</td>\n", | |
" <td>原始生命体ニビル</td>\n", | |
" <td>暗黒竜コラプサーペント</td>\n", | |
" <td>カオス・テリトリー</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>サイフレームギア・ドライバー</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>増殖するG, 灰流うらら\\n灰流うらら</td>\n", | |
" <td>G</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" No. Results Date Time(start) Time(end) First Turn First Card \\\n", | |
"0 1 Win March 02, 2022 NaN 23:14:00 1 セイファート \n", | |
"1 2 Win March 02, 2022 23:28:00 00:02:00 0 原始生命体ニビル \n", | |
"\n", | |
" Second Card Third Card Fourth Card Fifth card Opponents deck name \\\n", | |
"0 コラブサーペント ヴァレット・トレーサー 龍の鏡 マスク・チェンジ・セカンド 閃刀姫 \n", | |
"1 暗黒竜コラプサーペント カオス・テリトリー 星遺物の守護竜 サイフレームギア・ドライバー 閃刀姫 \n", | |
"\n", | |
" N of Opponents handtrap Rank Tier \n", | |
"0 NaN G 4 \n", | |
"1 増殖するG, 灰流うらら\\n灰流うらら G 4 " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"df_A = df_A.rename(columns={\n", | |
" 'Datetime(start)':\"Time(start)\",\n", | |
" 'Datetime(end)':\"Time(end)\"\n", | |
" })\n", | |
"\n", | |
"show_df_A(2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"df_B:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 732, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>@March 9, 2022</td>\n", | |
" <td>@March 6, 2022 3:00 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>@March 6, 2022</td>\n", | |
" <td>@March 6, 2022 3:08 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>@March 8, 2022 11:45 PM</td>\n", | |
" <td>@March 8, 2022 12:00 AM</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Datetime(start) Datetime(end)\n", | |
"0 @March 9, 2022 @March 6, 2022 3:00 AM\n", | |
"1 @March 6, 2022 @March 6, 2022 3:08 AM\n", | |
"2 @March 8, 2022 11:45 PM @March 8, 2022 12:00 AM" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"display(df_B[['Datetime(start)', 'Datetime(end)']].head(3))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Column name: Datetime(start), Datetime(end)\n", | |
"\n", | |
"->Check if each value follows same format / 各値が同じ書式かどうか確認する\n", | |
"\n", | |
"->Insert slash in each value with a certain position / 各値の特定の位置にスラッシュを挿入する\n", | |
"\n", | |
"->Separate values with a slash into df_B['Date'] and df_A['Time(start)'] / スラッシュで区切られた値をdf_B['Date']とdf_A['Time(start)']に分割する\n", | |
"\n", | |
"->Format value to datetime / 値を datetime にフォーマットする。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 733, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
"df_B:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Count_spaces</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>@March 9, 2022</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>@March 6, 2022</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>@March 8, 2022 11:45 PM</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>@March 9, 2022 12:20 AM</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>@March 9, 2022 12:43 AM</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Datetime(start) Count_spaces\n", | |
"0 @March 9, 2022 2\n", | |
"1 @March 6, 2022 2\n", | |
"2 @March 8, 2022 11:45 PM 4\n", | |
"3 @March 9, 2022 12:20 AM 4\n", | |
"4 @March 9, 2022 12:43 AM 4" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# check if each value follows same format\n", | |
"df_B['Count_spaces'] = df_B['Datetime(start)'].astype(str).str.count('\\s+')\n", | |
"print(\"\\ndf_B:\\n\")\n", | |
"display(df_B[['Datetime(start)','Count_spaces']].head())\n", | |
"df_B = df_B.drop(['Count_spaces'], axis=1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"-> We can divide values to follow two patterns; / 2つのパターンに従って値を分割することができる。;\n", | |
"\n", | |
"A: one with date only, / A: 日付のみのもの。\n", | |
"\n", | |
"B: one with date and time. / B: 日付と時刻を含むもの。\n", | |
"\n", | |
"The key to determining which pattern one record follow\n", | |
"is whether a value has AM/PM letter.\n", | |
"/ どちらのパターンで記録するかを決めるポイントは\n", | |
"AM/PMの文字があるかどうか。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 734, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"nan" | |
] | |
}, | |
"execution_count": 734, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df_B.iloc[5,4]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 735, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_B:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Datetime(start)</th>\n", | |
" <th>Datetime(end)</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>March 9, 2022/</td>\n", | |
" <td>March 6, 2022/3:00 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>March 6, 2022/</td>\n", | |
" <td>March 6, 2022/3:08 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>March 8, 2022 /1:45 PM</td>\n", | |
" <td>March 8, 2022 /2:00 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>March 9, 2022 /2:20 AM</td>\n", | |
" <td>March 9, 2022 /2:44 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>March 9, 2022 /2:43 AM</td>\n", | |
" <td>March 9, 2022/1:07 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>March 9, 2022/1:09 AM</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Datetime(start) Datetime(end)\n", | |
"0 March 9, 2022/ March 6, 2022/3:00 AM\n", | |
"1 March 6, 2022/ March 6, 2022/3:08 AM\n", | |
"2 March 8, 2022 /1:45 PM March 8, 2022 /2:00 AM\n", | |
"3 March 9, 2022 /2:20 AM March 9, 2022 /2:44 AM\n", | |
"4 March 9, 2022 /2:43 AM March 9, 2022/1:07 AM\n", | |
"5 March 9, 2022/1:09 AM NaN" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#inserting slash in each value with a certain position\n", | |
"Key_word = (\"AM\",\"PM\")\n", | |
"df_B['Datetime(start)'] = df_B['Datetime(start)'].apply(lambda x: x[1:-8] + \"/\" + x[-7:] if (pd.notnull(x) and x.endswith(Key_word)) else (x[1:17] + \"/\" if pd.notnull(x) else x))\n", | |
"df_B['Datetime(end)'] = df_B['Datetime(end)'].apply(lambda x: x[1:-8] + \"/\" + x[-7:] if (pd.notnull(x) and x.endswith(Key_word)) else (x[1:17] + \"/\" if pd.notnull(x) else x))\n", | |
"\n", | |
"print(\"\\n df_B:\\n\")\n", | |
"display(df_B[['Datetime(start)','Datetime(end)']].head(6))\n", | |
"\n", | |
"#error log: below codes could not deal with misssing value\n", | |
"#pd.to_datetime(df_A['Date'] + ' ' + df_A['Datetime(start)'])\n", | |
"#str(df_A['Date']) + ' ' + str(df_A['Datetime(start)'])\n", | |
"# pd.to_datetime(str(df_A['Date']) + ' ' + str(df_A['Datetime(start)']))\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 736, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" df_B:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Date</th>\n", | |
" <th>Time(start)</th>\n", | |
" <th>Time(end)</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>March 9, 2022</td>\n", | |
" <td></td>\n", | |
" <td>3:00 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>March 6, 2022</td>\n", | |
" <td></td>\n", | |
" <td>3:08 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>March 8, 2022</td>\n", | |
" <td>1:45 PM</td>\n", | |
" <td>2:00 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>March 9, 2022</td>\n", | |
" <td>2:20 AM</td>\n", | |
" <td>2:44 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>March 9, 2022</td>\n", | |
" <td>2:43 AM</td>\n", | |
" <td>1:07 AM</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>March 9, 2022</td>\n", | |
" <td>1:09 AM</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Date Time(start) Time(end)\n", | |
"0 March 9, 2022 3:00 AM\n", | |
"1 March 6, 2022 3:08 AM\n", | |
"2 March 8, 2022 1:45 PM 2:00 AM\n", | |
"3 March 9, 2022 2:20 AM 2:44 AM\n", | |
"4 March 9, 2022 2:43 AM 1:07 AM\n", | |
"5 March 9, 2022 1:09 AM NaN" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# Separate values with a slash into df_B['Date'] and df_A['Time(start)']\n", | |
"df_B[['Date','Datetime(start)']] = df_B['Datetime(start)'].str.split('/', expand=True)\n", | |
"df_B['Datetime(end)'] = df_B['Datetime(end)'].apply(lambda x: x[-7:] if pd.notnull(x) else x) #notnull helps to skip null value\n", | |
"\n", | |
"df_B = df_B.rename(columns={\n", | |
" 'Datetime(start)':\"Time(start)\",\n", | |
" 'Datetime(end)':\"Time(end)\"\n", | |
" })\n", | |
"\n", | |
"# display the dataframe\n", | |
"print(\"\\n df_B:\\n\")\n", | |
"display(df_B[['Date','Time(start)','Time(end)']].head(6))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Convert value to datetime" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 737, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#Format value to datetime\n", | |
"df_B['Date'] = pd.to_datetime(df_B['Date']).dt.strftime('%B %d, %Y')\n", | |
"df_B['Time(start)'] = pd.to_datetime(df_B['Time(start)']).dt.strftime('%H:%M:%S')\n", | |
"df_B['Time(end)'] = pd.to_datetime(df_B['Time(end)']).dt.strftime('%H:%M:%S')\n", | |
"\n", | |
"#Error log: ParserError: String does not contain a date: /\n", | |
"#all values had to be in datetime object\n", | |
"#-> Leaning 2 " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 738, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Date</th>\n", | |
" <th>Time(start)</th>\n", | |
" <th>Time(end)</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>03:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>03:08:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>March 08, 2022</td>\n", | |
" <td>13:45:00</td>\n", | |
" <td>02:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>02:20:00</td>\n", | |
" <td>02:44:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>02:43:00</td>\n", | |
" <td>01:07:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>01:09:00</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Date Time(start) Time(end)\n", | |
"0 March 09, 2022 NaN 03:00:00\n", | |
"1 March 06, 2022 NaN 03:08:00\n", | |
"2 March 08, 2022 13:45:00 02:00:00\n", | |
"3 March 09, 2022 02:20:00 02:44:00\n", | |
"4 March 09, 2022 02:43:00 01:07:00\n", | |
"5 March 09, 2022 01:09:00 NaN" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"<class 'pandas.core.frame.DataFrame'>\n", | |
"RangeIndex: 30 entries, 0 to 29\n", | |
"Data columns (total 16 columns):\n", | |
" # Column Non-Null Count Dtype \n", | |
"--- ------ -------------- ----- \n", | |
" 0 No. 30 non-null object \n", | |
" 1 Rank 29 non-null object \n", | |
" 2 Result 30 non-null object \n", | |
" 3 Time(start) 24 non-null object \n", | |
" 4 Time(end) 29 non-null object \n", | |
" 5 First_turn 30 non-null object \n", | |
" 6 First_card 30 non-null object \n", | |
" 7 Second_card 30 non-null object \n", | |
" 8 Third_card 30 non-null object \n", | |
" 9 Fourth_card 30 non-null object \n", | |
" 10 Fifth_card 30 non-null object \n", | |
" 11 Opp_decktype 30 non-null object \n", | |
" 12 Opp_handtrap 17 non-null float64\n", | |
" 13 Opp's handtrap 7 non-null object \n", | |
" 14 Property 10 non-null object \n", | |
" 15 Date 27 non-null object \n", | |
"dtypes: float64(1), object(15)\n", | |
"memory usage: 3.9+ KB\n" | |
] | |
} | |
], | |
"source": [ | |
"display(df_B[['Date','Time(start)','Time(end)']].head(6))\n", | |
"df_B.info()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##### Deal with columns that are not related with datetime / Datetime以外の列を編集する" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Column name: df_A['Rank'] , df_A['Tier']\n", | |
"\n", | |
"-> Concatenate them / 2つのコラムの値を連結" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 739, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>No.</th>\n", | |
" <th>Results</th>\n", | |
" <th>Date</th>\n", | |
" <th>Time(start)</th>\n", | |
" <th>Time(end)</th>\n", | |
" <th>First Turn</th>\n", | |
" <th>First Card</th>\n", | |
" <th>Second Card</th>\n", | |
" <th>Third Card</th>\n", | |
" <th>Fourth Card</th>\n", | |
" <th>Fifth card</th>\n", | |
" <th>Opponents deck name</th>\n", | |
" <th>N of Opponents handtrap</th>\n", | |
" <th>Rank</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1</td>\n", | |
" <td>Win</td>\n", | |
" <td>March 02, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>23:14:00</td>\n", | |
" <td>1</td>\n", | |
" <td>セイファート</td>\n", | |
" <td>コラブサーペント</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2</td>\n", | |
" <td>Win</td>\n", | |
" <td>March 02, 2022</td>\n", | |
" <td>23:28:00</td>\n", | |
" <td>00:02:00</td>\n", | |
" <td>0</td>\n", | |
" <td>原始生命体ニビル</td>\n", | |
" <td>暗黒竜コラプサーペント</td>\n", | |
" <td>カオス・テリトリー</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>サイフレームギア・ドライバー</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>増殖するG, 灰流うらら\\n灰流うらら</td>\n", | |
" <td>G4</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" No. Results Date Time(start) Time(end) First Turn First Card \\\n", | |
"0 1 Win March 02, 2022 NaN 23:14:00 1 セイファート \n", | |
"1 2 Win March 02, 2022 23:28:00 00:02:00 0 原始生命体ニビル \n", | |
"\n", | |
" Second Card Third Card Fourth Card Fifth card Opponents deck name \\\n", | |
"0 コラブサーペント ヴァレット・トレーサー 龍の鏡 マスク・チェンジ・セカンド 閃刀姫 \n", | |
"1 暗黒竜コラプサーペント カオス・テリトリー 星遺物の守護竜 サイフレームギア・ドライバー 閃刀姫 \n", | |
"\n", | |
" N of Opponents handtrap Rank \n", | |
"0 NaN G4 \n", | |
"1 増殖するG, 灰流うらら\\n灰流うらら G4 " | |
] | |
}, | |
"execution_count": 739, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Concatenate two columns\n", | |
"df_A['Rank'] = df_A['Rank'] + \"\" + df_A['Tier'].astype(str)\n", | |
"df_A = df_A.drop('Tier', axis=1)\n", | |
"df_A.head(2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Rename columns name / カラム名の変更" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 740, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Rename other column name\n", | |
"df_A = df_A.rename(columns={\n", | |
" 'Results':'Result',\n", | |
" 'First Turn':'First_turn',\n", | |
" 'First Card':'First_card',\n", | |
" 'Second Card':'Second_card',\n", | |
" 'Third Card':'Third_card',\n", | |
" 'Fourth Card':'Fourth_card',\n", | |
" 'Fifth card':'Fifth_card', # be careful with capitalization\n", | |
" 'Opponents deck name':'Opp_decktype',\n", | |
" 'N of Opponents handtrap':'Name_of_Opp_handtrap'\n", | |
" })\n", | |
"\n", | |
"df_B = df_B.rename(columns={\n", | |
" 'Opp_handtrap':'N_of_Opp_handtrap',\n", | |
" \"Opp's handtrap\":\"Name_of_Opp_handtrap\"})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 741, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" Unmatched column name:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"{'N_of_Opp_handtrap', 'Property'}" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" Matched column name:{'First_card', 'No.', 'Time(end)', 'Third_card', 'Result', 'Fourth_card', 'Rank', 'First_turn', 'Name_of_Opp_handtrap', 'Time(start)', 'Opp_decktype', 'Fifth_card', 'Date', 'Second_card'}\n", | |
"\n", | |
"\n", | |
" compare column name:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>A</th>\n", | |
" <th>B</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>No.</td>\n", | |
" <td>No.</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>Result</td>\n", | |
" <td>Rank</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>Date</td>\n", | |
" <td>Result</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Time(start)</td>\n", | |
" <td>Time(start)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Time(end)</td>\n", | |
" <td>Time(end)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>First_turn</td>\n", | |
" <td>First_turn</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>First_card</td>\n", | |
" <td>First_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>Second_card</td>\n", | |
" <td>Second_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>Third_card</td>\n", | |
" <td>Third_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>Fourth_card</td>\n", | |
" <td>Fourth_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>Fifth_card</td>\n", | |
" <td>Fifth_card</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>Opp_decktype</td>\n", | |
" <td>Opp_decktype</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>Name_of_Opp_handtrap</td>\n", | |
" <td>N_of_Opp_handtrap</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>Rank</td>\n", | |
" <td>Name_of_Opp_handtrap</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>NaN</td>\n", | |
" <td>Property</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>NaN</td>\n", | |
" <td>Date</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B\n", | |
"0 No. No.\n", | |
"1 Result Rank\n", | |
"2 Date Result\n", | |
"3 Time(start) Time(start)\n", | |
"4 Time(end) Time(end)\n", | |
"5 First_turn First_turn\n", | |
"6 First_card First_card\n", | |
"7 Second_card Second_card\n", | |
"8 Third_card Third_card\n", | |
"9 Fourth_card Fourth_card\n", | |
"10 Fifth_card Fifth_card\n", | |
"11 Opp_decktype Opp_decktype\n", | |
"12 Name_of_Opp_handtrap N_of_Opp_handtrap\n", | |
"13 Rank Name_of_Opp_handtrap\n", | |
"14 NaN Property\n", | |
"15 NaN Date" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"compare_columns(df_A, df_B)\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 4. Combine two dataframe into one / ふたつのデータフレームをひとつに" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 742, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"['Result', 'Date', 'Time(start)', 'Time(end)', 'Rank', 'First_turn', 'First_card', 'Second_card', 'Third_card', 'Fourth_card', 'Fifth_card', 'Opp_decktype', 'N_of_Opp_handtrap', 'Name_of_Opp_handtrap', 'Property']\n", | |
"\n", | |
" df_combine:\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Result</th>\n", | |
" <th>Date</th>\n", | |
" <th>Time(start)</th>\n", | |
" <th>Time(end)</th>\n", | |
" <th>Rank</th>\n", | |
" <th>First_turn</th>\n", | |
" <th>First_card</th>\n", | |
" <th>Second_card</th>\n", | |
" <th>Third_card</th>\n", | |
" <th>Fourth_card</th>\n", | |
" <th>Fifth_card</th>\n", | |
" <th>Opp_decktype</th>\n", | |
" <th>N_of_Opp_handtrap</th>\n", | |
" <th>Name_of_Opp_handtrap</th>\n", | |
" <th>Property</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>No.</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>02:29:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>0</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>マグナヴァレット・ドラゴン</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>02:37:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>0</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ハーピィの羽箒</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>怪獣×除外系</td>\n", | |
" <td>NaN</td>\n", | |
" <td>ディメンションアトラクター</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>03:00:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>Turn2</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ブレイクスルー・スキル</td>\n", | |
" <td>サンダー・ボルト</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>転生炎獣</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>03:08:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>暗黒竜 コラプサーペント</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Result Date Time(start) Time(end) Rank First_turn First_card \\\n", | |
"No. \n", | |
"19 Win March 06, 2022 NaN 02:29:00 G3 0 ヴァレット・シンクロン \n", | |
"20 Lose March 06, 2022 NaN 02:37:00 G3 0 ヴァレット・トレーサー \n", | |
"21 Win March 09, 2022 NaN 03:00:00 G2 Turn2 PSYフレームギア・γ \n", | |
"22 Win March 06, 2022 NaN 03:08:00 G2 Turn1 増殖するG \n", | |
"\n", | |
" Second_card Third_card Fourth_card Fifth_card Opp_decktype \\\n", | |
"No. \n", | |
"19 マグナヴァレット・ドラゴン メタルヴァレット・ドラゴン 龍の鏡 クイック・リボルブ ブルーアイズ \n", | |
"20 ハーピィの羽箒 竜の渓谷 クイック・リボルブ クイック・リボルブ 怪獣×除外系 \n", | |
"21 墓穴の指名者 ブレイクスルー・スキル サンダー・ボルト ヴァレット・シンクロン 転生炎獣 \n", | |
"22 PSYフレーム・ドライバー 増殖するG 暗黒竜 コラプサーペント クイック・リボルブ ブルーアイズ \n", | |
"\n", | |
" N_of_Opp_handtrap Name_of_Opp_handtrap Property \n", | |
"No. \n", | |
"19 NaN NaN NaN \n", | |
"20 NaN ディメンションアトラクター NaN \n", | |
"21 NaN NaN NaN \n", | |
"22 0.0 NaN NaN " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"<class 'pandas.core.frame.DataFrame'>\n", | |
"Index: 50 entries, 1 to 29\n", | |
"Data columns (total 15 columns):\n", | |
" # Column Non-Null Count Dtype \n", | |
"--- ------ -------------- ----- \n", | |
" 0 Result 50 non-null object \n", | |
" 1 Date 47 non-null object \n", | |
" 2 Time(start) 35 non-null object \n", | |
" 3 Time(end) 44 non-null object \n", | |
" 4 Rank 49 non-null object \n", | |
" 5 First_turn 50 non-null object \n", | |
" 6 First_card 50 non-null object \n", | |
" 7 Second_card 50 non-null object \n", | |
" 8 Third_card 49 non-null object \n", | |
" 9 Fourth_card 50 non-null object \n", | |
" 10 Fifth_card 50 non-null object \n", | |
" 11 Opp_decktype 49 non-null object \n", | |
" 12 N_of_Opp_handtrap 17 non-null float64\n", | |
" 13 Name_of_Opp_handtrap 14 non-null object \n", | |
" 14 Property 10 non-null object \n", | |
"dtypes: float64(1), object(14)\n", | |
"memory usage: 6.2+ KB\n" | |
] | |
} | |
], | |
"source": [ | |
"df_combine = pd.concat([df_A, df_B]).set_index('No.')\n", | |
"df_combine = df_combine.reindex(columns=['Result', 'Date', 'Time(start)', 'Time(end)', 'Rank','First_turn', 'First_card', 'Second_card', 'Third_card', 'Fourth_card', 'Fifth_card', 'Opp_decktype', 'N_of_Opp_handtrap', 'Name_of_Opp_handtrap', 'Property'])\n", | |
"print(df_combine.columns.values.tolist())\n", | |
"print(\"\\n df_combine:\\n\")\n", | |
"display(df_combine.iloc[18:22,:])\n", | |
"df_combine.info()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Format value with consistency. / 値を整える." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Before formatting the value, I had to fix the index at 50, which was in Japanese letters. / 値をフォーマットする前に、日本語の文字で50となっていたインデックスを50にする必要があった." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 743, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Result</th>\n", | |
" <th>Date</th>\n", | |
" <th>Time(start)</th>\n", | |
" <th>Time(end)</th>\n", | |
" <th>Rank</th>\n", | |
" <th>First_turn</th>\n", | |
" <th>First_card</th>\n", | |
" <th>Second_card</th>\n", | |
" <th>Third_card</th>\n", | |
" <th>Fourth_card</th>\n", | |
" <th>Fifth_card</th>\n", | |
" <th>Opp_decktype</th>\n", | |
" <th>N_of_Opp_handtrap</th>\n", | |
" <th>Name_of_Opp_handtrap</th>\n", | |
" <th>Property</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>No.</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>49</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>13:57:00</td>\n", | |
" <td>14:11:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>Turn2</td>\n", | |
" <td>サンダー・ボルト</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>罠メタ</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>ハーピィの羽根帚を引いから罠を破壊できた</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>50</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>14:17:00</td>\n", | |
" <td>14:47:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>Turn1</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>暗黒竜 コラプサーペント</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>竜儀巧</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Result Date Time(start) Time(end) Rank First_turn First_card \\\n", | |
"No. \n", | |
"49 Win March 12, 2022 13:57:00 14:11:00 G2 Turn2 サンダー・ボルト \n", | |
"50 Lose March 12, 2022 14:17:00 14:47:00 G2 Turn1 クイック・リボルブ \n", | |
"\n", | |
" Second_card Third_card Fourth_card Fifth_card Opp_decktype \\\n", | |
"No. \n", | |
"49 墓穴の指名者 輝白竜 ワイバースター アブソルーター・ドラゴン マスク・チェンジ・セカンド 罠メタ \n", | |
"50 クイック・リボルブ 輝白竜 ワイバースター 暗黒竜 コラプサーペント 龍の鏡 竜儀巧 \n", | |
"\n", | |
" N_of_Opp_handtrap Name_of_Opp_handtrap Property \n", | |
"No. \n", | |
"49 NaN NaN ハーピィの羽根帚を引いから罠を破壊できた \n", | |
"50 NaN NaN NaN " | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#issue\n", | |
"display(df_combine.iloc[41:43,:])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 744, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#solution\n", | |
"df_combine = df_combine.rename(index={'50':50})\n", | |
"df_combine.index = df_combine.index.astype(int)\n", | |
"df_combine.sort_index(ascending=True, inplace=True)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Change value at a certain position to the desired format / ある位置の値を任意の形式に変更する " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 745, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"No.\n", | |
"19 0\n", | |
"20 0\n", | |
"21 Turn2\n", | |
"22 Turn1\n", | |
"Name: First_turn, dtype: object" | |
] | |
}, | |
"execution_count": 745, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"#issue\n", | |
"df_combine.iloc[18:22,5]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 746, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>First_turn</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>No.</th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" First_turn\n", | |
"No. \n", | |
"19 2\n", | |
"20 2\n", | |
"21 2\n", | |
"22 1" | |
] | |
}, | |
"execution_count": 746, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"#format value by applying lambda function\n", | |
"df_combine.iloc[0:20,5] = df_combine.iloc[0:20,5].apply(lambda x : x if x == 1 else 2)\n", | |
"df_combine.iloc[20:50,5] = df_combine.iloc[20:50,5].apply(lambda x : 1 if x == \"Turn1\" else ( 2 if x == \"Turn2\" else np.nan))\n", | |
"df_combine.iloc[18:22,5:6]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Count how many card names appeared in a value of 'Name_of_Opp_handtrap' and turn it to the value of 'N_of_Opp_handtrap'. / 'Name_of_Opp_handtrap'の値に何枚のカード名が登場したかを数え、'N_of_Opp_handtrap'の値とする。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 747, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>N_of_Opp_handtrap</th>\n", | |
" <th>Name_of_Opp_handtrap</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>No.</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>NaN</td>\n", | |
" <td>ディメンションアトラクター</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" N_of_Opp_handtrap Name_of_Opp_handtrap\n", | |
"No. \n", | |
"20 NaN ディメンションアトラクター\n", | |
"24 NaN NaN" | |
] | |
}, | |
"execution_count": 747, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"#issue\n", | |
"df_combine.iloc[[19,23],12:14]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 748, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>N_of_Opp_handtrap</th>\n", | |
" <th>Name_of_Opp_handtrap</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>No.</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>1</td>\n", | |
" <td>ディメンションアトラクター</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24</th>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" N_of_Opp_handtrap Name_of_Opp_handtrap\n", | |
"No. \n", | |
"20 1 ディメンションアトラクター\n", | |
"24 0 " | |
] | |
}, | |
"execution_count": 748, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"#soulution\n", | |
"df_combine['Name_of_Opp_handtrap'] = df_combine['Name_of_Opp_handtrap'].str.replace('\\n',', ')\n", | |
"df_combine['Name_of_Opp_handtrap'] = df_combine['Name_of_Opp_handtrap'].fillna(\"\")\n", | |
"df_combine['N_of_Opp_handtrap'] = df_combine['Name_of_Opp_handtrap'].apply(lambda x: len(x.split(\",\")) if not x == \"\" else 0)\n", | |
"df_combine.iloc[[19,23],12:14]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Finished cleaning! / データクリーニング完!" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 749, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Result</th>\n", | |
" <th>Date</th>\n", | |
" <th>Time(start)</th>\n", | |
" <th>Time(end)</th>\n", | |
" <th>Rank</th>\n", | |
" <th>First_turn</th>\n", | |
" <th>First_card</th>\n", | |
" <th>Second_card</th>\n", | |
" <th>Third_card</th>\n", | |
" <th>Fourth_card</th>\n", | |
" <th>Fifth_card</th>\n", | |
" <th>Opp_decktype</th>\n", | |
" <th>N_of_Opp_handtrap</th>\n", | |
" <th>Name_of_Opp_handtrap</th>\n", | |
" <th>Property</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>No.</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 02, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>23:14:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>セイファート</td>\n", | |
" <td>コラブサーペント</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 02, 2022</td>\n", | |
" <td>23:28:00</td>\n", | |
" <td>00:02:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>2</td>\n", | |
" <td>原始生命体ニビル</td>\n", | |
" <td>暗黒竜コラプサーペント</td>\n", | |
" <td>カオス・テリトリー</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>サイフレームギア・ドライバー</td>\n", | |
" <td>閃刀姫</td>\n", | |
" <td>3</td>\n", | |
" <td>増殖するG, 灰流うらら, 灰流うらら</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 02, 2022</td>\n", | |
" <td>00:03:00</td>\n", | |
" <td>00:08:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>輝白竜ワイバースター</td>\n", | |
" <td>ハーピィの羽箒</td>\n", | |
" <td>ドラゴンズ・ミラー</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>トライブリゲート</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 03, 2022</td>\n", | |
" <td>11:00:00</td>\n", | |
" <td>11:15:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>2</td>\n", | |
" <td>はるうらら</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>カオス・テリトリー</td>\n", | |
" <td>蟲惑魔</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 03, 2022</td>\n", | |
" <td>11:15:00</td>\n", | |
" <td>11:25:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>サンダーボルト</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ヌメロン</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 03, 2022</td>\n", | |
" <td>11:25:00</td>\n", | |
" <td>11:30:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ハーピィの羽箒</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ムーンナイト</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>輝白竜ワイバースター</td>\n", | |
" <td>暗黒竜コラプサーペント</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>トライブリゲート</td>\n", | |
" <td>1</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G4</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>マグナヴァレット・ドラゴン</td>\n", | |
" <td>サイフレームギア・ドライバー</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>シンクロン</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>02:02:00</td>\n", | |
" <td>02:22:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>はるうらら</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ヴァレット・リチャージャー</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>オルフェゴール</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>02:22:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>輝白竜ワイバースター</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>フォトン・ギャラクシー</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>02:30:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G4</td>\n", | |
" <td>2</td>\n", | |
" <td>サイフレームギア・ガンマ</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ノクトビジョン・ドラゴン</td>\n", | |
" <td>混源龍レヴィオニア</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>ミュートリアル</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>02:43:00</td>\n", | |
" <td>03:00:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>輝白竜ワイバースター</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>ドライトロン</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>15:47:00</td>\n", | |
" <td>16:06:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>輝白竜ワイバースター</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>ブレイクスルースキル</td>\n", | |
" <td>はるうらら</td>\n", | |
" <td>エルドリッチ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>16:07:00</td>\n", | |
" <td>16:15:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>はるうらら</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>暗黒竜コラプサーペント</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 05, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>17:52:00</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>混源龍レヴィオニア</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ドレミ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G4</td>\n", | |
" <td>1</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>NaN</td>\n", | |
" <td>サイフレームギア・ガンマ</td>\n", | |
" <td>サイフレームギア・ドライバー</td>\n", | |
" <td>シンクロ・魔導</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>02:01:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>1</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>デュアル</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>02:11:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>2</td>\n", | |
" <td>輝白竜ワイバースター</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>LL</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>02:29:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>2</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>マグナヴァレット・ドラゴン</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>02:37:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>2</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ハーピィの羽箒</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>怪獣×除外系</td>\n", | |
" <td>1</td>\n", | |
" <td>ディメンションアトラクター</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>03:00:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ブレイクスルー・スキル</td>\n", | |
" <td>サンダー・ボルト</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>転生炎獣</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 06, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>03:08:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>暗黒竜 コラプサーペント</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 13, 2022</td>\n", | |
" <td>NaN</td>\n", | |
" <td>19:38:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ヴァレット・リチャージャー</td>\n", | |
" <td>ノクトビジョン・ドラゴン</td>\n", | |
" <td>混源龍レヴィオニア</td>\n", | |
" <td>デストーイ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24</th>\n", | |
" <td>Win</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>20:24:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>輝光竜セイファート</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>ドレミコード</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25</th>\n", | |
" <td>Lose</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>13:19:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>マグナヴァレット・ドラゴン</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>原始生命態ニビル</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>シンクロ 竜星</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>26</th>\n", | |
" <td>Win</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>13:40:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>ノクトビジョン・ドラゴン</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>ブレイクスルー・スキル</td>\n", | |
" <td>インフェルニティ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 21, 2022</td>\n", | |
" <td>02:38:00</td>\n", | |
" <td>02:49:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>28</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 21, 2022</td>\n", | |
" <td>02:50:00</td>\n", | |
" <td>01:01:00</td>\n", | |
" <td>G1</td>\n", | |
" <td>2</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>ノクトビジョン・ドラゴン</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>エルドリッチ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>先行制圧のあと、サレンダー</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>29</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 21, 2022</td>\n", | |
" <td>13:36:00</td>\n", | |
" <td>02:00:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>2</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>Psyフレームで初動を無効にしたらサレンダー</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>30</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 08, 2022</td>\n", | |
" <td>13:45:00</td>\n", | |
" <td>02:00:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>輝光竜セイファート</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>ヴァレット・リチャージャー</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>絵札の三銃士</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>31</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>02:20:00</td>\n", | |
" <td>02:44:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>ギャラクシー</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>32</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>02:43:00</td>\n", | |
" <td>01:07:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>罠バーン</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>33</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>01:09:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>リボルブート・セクター</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ブラック・マジシャン</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>34</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>12:03:00</td>\n", | |
" <td>12:15:00</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>幻影 彼岸</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>35</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>12:14:00</td>\n", | |
" <td>12:30:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>ヴァレット・シンクロン</td>\n", | |
" <td>暗黒竜 コラプサーペント</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>混源龍レヴィオニア</td>\n", | |
" <td>プランキッズ</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>36</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 09, 2022</td>\n", | |
" <td>12:29:00</td>\n", | |
" <td>12:38:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>エルドリッチ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>37</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 10, 2022</td>\n", | |
" <td>07:03:00</td>\n", | |
" <td>07:14:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>1</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>サンダーボルト</td>\n", | |
" <td>混源龍レヴィオニア</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>魔導</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>38</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 10, 2022</td>\n", | |
" <td>19:15:00</td>\n", | |
" <td>19:38:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>2</td>\n", | |
" <td>原始生命態ニビル</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>ブレイクスルー・スキル</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>ノクトビジョン・ドラゴン</td>\n", | |
" <td>デュアル</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>39</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 10, 2022</td>\n", | |
" <td>19:40:00</td>\n", | |
" <td>19:45:00</td>\n", | |
" <td>G3</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ヴァレット・リチャージャー</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>魔法 ペンデュラム</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>40</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 10, 2022</td>\n", | |
" <td>20:17:00</td>\n", | |
" <td>20:23:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>星遺物の守護竜</td>\n", | |
" <td>トゥーン</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>41</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 10, 2022</td>\n", | |
" <td>20:26:00</td>\n", | |
" <td>02:00:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>輝光竜セイファート</td>\n", | |
" <td>フォッシルダイナ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>特殊召喚封じ。魔法罠破壊できず。</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>42</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>01:39:00</td>\n", | |
" <td>02:00:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>マグナヴァレット・ドラゴン</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>エルドリッチ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>プレミをした。</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>43</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>02:30:00</td>\n", | |
" <td>02:42:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>サンダーボルト</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>竜の渓谷</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ドラゴンメイド</td>\n", | |
" <td>2</td>\n", | |
" <td>増殖するG, 灰流うらら</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>44</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>02:45:00</td>\n", | |
" <td>02:51:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>マグナヴァレット・ドラゴン</td>\n", | |
" <td>王宮の勅命</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>蠱惑魔</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>ヴァレルロード+ダークロウ盤面出た瞬間サレンダー</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>45</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>02:56:00</td>\n", | |
" <td>02:58:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>PSYフレーム・ドライバー</td>\n", | |
" <td>メガリス</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>増殖するGをPsyフレームで無効し、展開始めたらサレンダー</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>46</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>03:05:00</td>\n", | |
" <td>03:12:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>混沌領域</td>\n", | |
" <td>PSYフレームギア・γ</td>\n", | |
" <td>ミックスHERO</td>\n", | |
" <td>1</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>カオステリトリーに対するうららをPsyフレームで無効。展開を続けていたらサレンダー。</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>47</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>03:16:00</td>\n", | |
" <td>03:33:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>マグナヴァレット・ドラゴン</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>ヴァレット・トレーサー</td>\n", | |
" <td>ブルーアイズ</td>\n", | |
" <td>1</td>\n", | |
" <td>増殖するG</td>\n", | |
" <td>サレンダー、アビスがささる</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>48</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>13:50:00</td>\n", | |
" <td>13:56:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>メタルヴァレット・ドラゴン</td>\n", | |
" <td>ハーピィの羽根帚</td>\n", | |
" <td>竜儀巧</td>\n", | |
" <td>1</td>\n", | |
" <td>灰流うらら</td>\n", | |
" <td>最初のサーチカードをうららで無効にする何も召喚できなかった相手はサレンダー</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>49</th>\n", | |
" <td>Win</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>13:57:00</td>\n", | |
" <td>14:11:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>2</td>\n", | |
" <td>サンダー・ボルト</td>\n", | |
" <td>墓穴の指名者</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>アブソルーター・ドラゴン</td>\n", | |
" <td>マスク・チェンジ・セカンド</td>\n", | |
" <td>罠メタ</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>ハーピィの羽根帚を引いから罠を破壊できた</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>50</th>\n", | |
" <td>Lose</td>\n", | |
" <td>March 12, 2022</td>\n", | |
" <td>14:17:00</td>\n", | |
" <td>14:47:00</td>\n", | |
" <td>G2</td>\n", | |
" <td>1</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>クイック・リボルブ</td>\n", | |
" <td>輝白竜 ワイバースター</td>\n", | |
" <td>暗黒竜 コラプサーペント</td>\n", | |
" <td>龍の鏡</td>\n", | |
" <td>竜儀巧</td>\n", | |
" <td>0</td>\n", | |
" <td></td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Result Date Time(start) Time(end) Rank First_turn \\\n", | |
"No. \n", | |
"1 Win March 02, 2022 NaN 23:14:00 G4 1 \n", | |
"2 Win March 02, 2022 23:28:00 00:02:00 G4 2 \n", | |
"3 Lose March 02, 2022 00:03:00 00:08:00 G4 2 \n", | |
"4 Win March 03, 2022 11:00:00 11:15:00 G4 2 \n", | |
"5 Lose March 03, 2022 11:15:00 11:25:00 G4 1 \n", | |
"6 Lose March 03, 2022 11:25:00 11:30:00 G4 1 \n", | |
"7 Lose March 05, 2022 NaN NaN G4 1 \n", | |
"8 Win March 05, 2022 NaN NaN G4 2 \n", | |
"9 Win March 05, 2022 02:02:00 02:22:00 G4 2 \n", | |
"10 Win March 05, 2022 02:22:00 NaN G4 1 \n", | |
"11 Win March 05, 2022 02:30:00 NaN G4 2 \n", | |
"12 Lose March 05, 2022 02:43:00 03:00:00 G4 1 \n", | |
"13 Win March 05, 2022 15:47:00 16:06:00 G4 2 \n", | |
"14 Lose March 05, 2022 16:07:00 16:15:00 G4 1 \n", | |
"15 Win March 05, 2022 NaN 17:52:00 G4 1 \n", | |
"16 Lose March 06, 2022 NaN NaN G4 1 \n", | |
"17 Win March 06, 2022 NaN 02:01:00 G3 1 \n", | |
"18 Win March 06, 2022 NaN 02:11:00 G3 2 \n", | |
"19 Win March 06, 2022 NaN 02:29:00 G3 2 \n", | |
"20 Lose March 06, 2022 NaN 02:37:00 G3 2 \n", | |
"21 Win March 09, 2022 NaN 03:00:00 G2 2 \n", | |
"22 Win March 06, 2022 NaN 03:08:00 G2 1 \n", | |
"23 Win March 13, 2022 NaN 19:38:00 G2 1 \n", | |
"24 Win NaN NaN 20:24:00 G2 2 \n", | |
"25 Lose NaN NaN 13:19:00 G2 2 \n", | |
"26 Win NaN NaN 13:40:00 G2 1 \n", | |
"27 Win March 21, 2022 02:38:00 02:49:00 G2 1 \n", | |
"28 Win March 21, 2022 02:50:00 01:01:00 G1 2 \n", | |
"29 Win March 21, 2022 13:36:00 02:00:00 G3 2 \n", | |
"30 Win March 08, 2022 13:45:00 02:00:00 G2 2 \n", | |
"31 Win March 09, 2022 02:20:00 02:44:00 G2 1 \n", | |
"32 Win March 09, 2022 02:43:00 01:07:00 G2 1 \n", | |
"33 Win March 09, 2022 01:09:00 NaN G2 2 \n", | |
"34 Lose March 09, 2022 12:03:00 12:15:00 NaN 2 \n", | |
"35 Lose March 09, 2022 12:14:00 12:30:00 G2 1 \n", | |
"36 Win March 09, 2022 12:29:00 12:38:00 G2 1 \n", | |
"37 Win March 10, 2022 07:03:00 07:14:00 G3 1 \n", | |
"38 Win March 10, 2022 19:15:00 19:38:00 G3 2 \n", | |
"39 Win March 10, 2022 19:40:00 19:45:00 G3 2 \n", | |
"40 Win March 10, 2022 20:17:00 20:23:00 G2 2 \n", | |
"41 Lose March 10, 2022 20:26:00 02:00:00 G2 2 \n", | |
"42 Lose March 12, 2022 01:39:00 02:00:00 G2 2 \n", | |
"43 Win March 12, 2022 02:30:00 02:42:00 G2 2 \n", | |
"44 Win March 12, 2022 02:45:00 02:51:00 G2 1 \n", | |
"45 Win March 12, 2022 02:56:00 02:58:00 G2 1 \n", | |
"46 Win March 12, 2022 03:05:00 03:12:00 G2 1 \n", | |
"47 Win March 12, 2022 03:16:00 03:33:00 G2 1 \n", | |
"48 Win March 12, 2022 13:50:00 13:56:00 G2 2 \n", | |
"49 Win March 12, 2022 13:57:00 14:11:00 G2 2 \n", | |
"50 Lose March 12, 2022 14:17:00 14:47:00 G2 1 \n", | |
"\n", | |
" First_card Second_card Third_card Fourth_card \\\n", | |
"No. \n", | |
"1 セイファート コラブサーペント ヴァレット・トレーサー 龍の鏡 \n", | |
"2 原始生命体ニビル 暗黒竜コラプサーペント カオス・テリトリー 星遺物の守護竜 \n", | |
"3 増殖するG 輝白竜ワイバースター ハーピィの羽箒 ドラゴンズ・ミラー \n", | |
"4 はるうらら アブソルーター・ドラゴン 竜の渓谷 星遺物の守護竜 \n", | |
"5 増殖するG サンダーボルト 竜の渓谷 マスク・チェンジ・セカンド \n", | |
"6 クイック・リボルブ ハーピィの羽箒 混沌領域 龍の鏡 \n", | |
"7 増殖するG 輝白竜ワイバースター 暗黒竜コラプサーペント クイック・リボルブ \n", | |
"8 増殖するG マグナヴァレット・ドラゴン サイフレームギア・ドライバー 龍の鏡 \n", | |
"9 増殖するG はるうらら ヴァレット・トレーサー ヴァレット・リチャージャー \n", | |
"10 ヴァレット・トレーサー 輝白竜ワイバースター アブソルーター・ドラゴン クイック・リボルブ \n", | |
"11 サイフレームギア・ガンマ ヴァレット・トレーサー ノクトビジョン・ドラゴン 混源龍レヴィオニア \n", | |
"12 ヴァレット・シンクロン 輝白竜ワイバースター マスク・チェンジ・セカンド クイック・リボルブ \n", | |
"13 増殖するG 輝白竜ワイバースター 混沌領域 ブレイクスルースキル \n", | |
"14 混沌領域 はるうらら メタルヴァレット・ドラゴン 暗黒竜コラプサーペント \n", | |
"15 ヴァレット・トレーサー 混源龍レヴィオニア 龍の鏡 クイック・リボルブ \n", | |
"16 ヴァレット・トレーサー アブソルーター・ドラゴン NaN サイフレームギア・ガンマ \n", | |
"17 混沌領域 ヴァレット・シンクロン 増殖するG アブソルーター・ドラゴン \n", | |
"18 輝白竜ワイバースター メタルヴァレット・ドラゴン アブソルーター・ドラゴン クイック・リボルブ \n", | |
"19 ヴァレット・シンクロン マグナヴァレット・ドラゴン メタルヴァレット・ドラゴン 龍の鏡 \n", | |
"20 ヴァレット・トレーサー ハーピィの羽箒 竜の渓谷 クイック・リボルブ \n", | |
"21 PSYフレームギア・γ 墓穴の指名者 ブレイクスルー・スキル サンダー・ボルト \n", | |
"22 増殖するG PSYフレーム・ドライバー 増殖するG 暗黒竜 コラプサーペント \n", | |
"23 竜の渓谷 ヴァレット・トレーサー ヴァレット・リチャージャー ノクトビジョン・ドラゴン \n", | |
"24 増殖するG 灰流うらら 輝光竜セイファート ハーピィの羽根帚 \n", | |
"25 マグナヴァレット・ドラゴン メタルヴァレット・ドラゴン 原始生命態ニビル 龍の鏡 \n", | |
"26 PSYフレームギア・γ ノクトビジョン・ドラゴン ハーピィの羽根帚 星遺物の守護竜 \n", | |
"27 増殖するG アブソルーター・ドラゴン 竜の渓谷 ハーピィの羽根帚 \n", | |
"28 混沌領域 増殖するG ノクトビジョン・ドラゴン アブソルーター・ドラゴン \n", | |
"29 PSYフレームギア・γ PSYフレーム・ドライバー クイック・リボルブ 星遺物の守護竜 \n", | |
"30 リボルブート・セクター 輝光竜セイファート 王宮の勅命 ヴァレット・リチャージャー \n", | |
"31 リボルブート・セクター ヴァレット・トレーサー 混沌領域 王宮の勅命 \n", | |
"32 クイック・リボルブ メタルヴァレット・ドラゴン 灰流うらら ヴァレット・トレーサー \n", | |
"33 灰流うらら 輝白竜 ワイバースター PSYフレーム・ドライバー リボルブート・セクター \n", | |
"34 増殖するG ヴァレット・トレーサー アブソルーター・ドラゴン 龍の鏡 \n", | |
"35 竜の渓谷 ヴァレット・シンクロン 暗黒竜 コラプサーペント ハーピィの羽根帚 \n", | |
"36 クイック・リボルブ ヴァレット・トレーサー 墓穴の指名者 墓穴の指名者 \n", | |
"37 輝白竜 ワイバースター 竜の渓谷 サンダーボルト 混源龍レヴィオニア \n", | |
"38 原始生命態ニビル 輝白竜 ワイバースター ブレイクスルー・スキル 星遺物の守護竜 \n", | |
"39 増殖するG PSYフレームギア・γ ヴァレット・トレーサー ヴァレット・リチャージャー \n", | |
"40 マスク・チェンジ・セカンド 墓穴の指名者 星遺物の守護竜 輝白竜 ワイバースター \n", | |
"41 混沌領域 PSYフレームギア・γ 混沌領域 混沌領域 \n", | |
"42 PSYフレームギア・γ 輝白竜 ワイバースター ハーピィの羽根帚 マグナヴァレット・ドラゴン \n", | |
"43 サンダーボルト 灰流うらら 竜の渓谷 龍の鏡 \n", | |
"44 ハーピィの羽根帚 マグナヴァレット・ドラゴン 王宮の勅命 マスク・チェンジ・セカンド \n", | |
"45 PSYフレームギア・γ ヴァレット・トレーサー クイック・リボルブ クイック・リボルブ \n", | |
"46 墓穴の指名者 ヴァレット・トレーサー 混沌領域 混沌領域 \n", | |
"47 墓穴の指名者 マグナヴァレット・ドラゴン クイック・リボルブ 墓穴の指名者 \n", | |
"48 灰流うらら クイック・リボルブ 輝白竜 ワイバースター メタルヴァレット・ドラゴン \n", | |
"49 サンダー・ボルト 墓穴の指名者 輝白竜 ワイバースター アブソルーター・ドラゴン \n", | |
"50 クイック・リボルブ クイック・リボルブ 輝白竜 ワイバースター 暗黒竜 コラプサーペント \n", | |
"\n", | |
" Fifth_card Opp_decktype N_of_Opp_handtrap \\\n", | |
"No. \n", | |
"1 マスク・チェンジ・セカンド 閃刀姫 0 \n", | |
"2 サイフレームギア・ドライバー 閃刀姫 3 \n", | |
"3 クイック・リボルブ トライブリゲート 0 \n", | |
"4 カオス・テリトリー 蟲惑魔 0 \n", | |
"5 墓穴の指名者 ヌメロン 1 \n", | |
"6 墓穴の指名者 ムーンナイト 0 \n", | |
"7 星遺物の守護竜 トライブリゲート 1 \n", | |
"8 増殖するG シンクロン 1 \n", | |
"9 ハーピィの羽根帚 オルフェゴール 0 \n", | |
"10 星遺物の守護竜 フォトン・ギャラクシー 0 \n", | |
"11 混沌領域 ミュートリアル 1 \n", | |
"12 王宮の勅命 ドライトロン 1 \n", | |
"13 はるうらら エルドリッチ 0 \n", | |
"14 クイック・リボルブ NaN 0 \n", | |
"15 クイック・リボルブ ドレミ 0 \n", | |
"16 サイフレームギア・ドライバー シンクロ・魔導 0 \n", | |
"17 龍の鏡 デュアル 0 \n", | |
"18 星遺物の守護竜 LL 0 \n", | |
"19 クイック・リボルブ ブルーアイズ 0 \n", | |
"20 クイック・リボルブ 怪獣×除外系 1 \n", | |
"21 ヴァレット・シンクロン 転生炎獣 0 \n", | |
"22 クイック・リボルブ ブルーアイズ 0 \n", | |
"23 混源龍レヴィオニア デストーイ 0 \n", | |
"24 混沌領域 ドレミコード 0 \n", | |
"25 混沌領域 シンクロ 竜星 0 \n", | |
"26 ブレイクスルー・スキル インフェルニティ 0 \n", | |
"27 増殖するG ブルーアイズ 0 \n", | |
"28 メタルヴァレット・ドラゴン エルドリッチ 0 \n", | |
"29 混沌領域 ブルーアイズ 0 \n", | |
"30 ヴァレット・トレーサー 絵札の三銃士 0 \n", | |
"31 メタルヴァレット・ドラゴン ギャラクシー 0 \n", | |
"32 ヴァレット・トレーサー 罠バーン 0 \n", | |
"33 墓穴の指名者 ブラック・マジシャン 0 \n", | |
"34 墓穴の指名者 幻影 彼岸 1 \n", | |
"35 混源龍レヴィオニア プランキッズ 1 \n", | |
"36 マスク・チェンジ・セカンド エルドリッチ 0 \n", | |
"37 灰流うらら 魔導 0 \n", | |
"38 ノクトビジョン・ドラゴン デュアル 0 \n", | |
"39 星遺物の守護竜 魔法 ペンデュラム 0 \n", | |
"40 星遺物の守護竜 トゥーン 0 \n", | |
"41 輝光竜セイファート フォッシルダイナ 0 \n", | |
"42 墓穴の指名者 エルドリッチ 0 \n", | |
"43 ヴァレット・トレーサー ドラゴンメイド 2 \n", | |
"44 ヴァレット・トレーサー 蠱惑魔 0 \n", | |
"45 PSYフレーム・ドライバー メガリス 1 \n", | |
"46 PSYフレームギア・γ ミックスHERO 1 \n", | |
"47 ヴァレット・トレーサー ブルーアイズ 1 \n", | |
"48 ハーピィの羽根帚 竜儀巧 1 \n", | |
"49 マスク・チェンジ・セカンド 罠メタ 0 \n", | |
"50 龍の鏡 竜儀巧 0 \n", | |
"\n", | |
" Name_of_Opp_handtrap Property \n", | |
"No. \n", | |
"1 NaN \n", | |
"2 増殖するG, 灰流うらら, 灰流うらら NaN \n", | |
"3 NaN \n", | |
"4 NaN \n", | |
"5 増殖するG NaN \n", | |
"6 NaN \n", | |
"7 灰流うらら NaN \n", | |
"8 増殖するG NaN \n", | |
"9 NaN \n", | |
"10 NaN \n", | |
"11 増殖するG NaN \n", | |
"12 増殖するG NaN \n", | |
"13 NaN \n", | |
"14 NaN \n", | |
"15 NaN \n", | |
"16 NaN \n", | |
"17 NaN \n", | |
"18 NaN \n", | |
"19 NaN \n", | |
"20 ディメンションアトラクター NaN \n", | |
"21 NaN \n", | |
"22 NaN \n", | |
"23 NaN \n", | |
"24 NaN \n", | |
"25 NaN \n", | |
"26 NaN \n", | |
"27 NaN \n", | |
"28 先行制圧のあと、サレンダー \n", | |
"29 Psyフレームで初動を無効にしたらサレンダー \n", | |
"30 NaN \n", | |
"31 NaN \n", | |
"32 NaN \n", | |
"33 NaN \n", | |
"34 増殖するG NaN \n", | |
"35 増殖するG NaN \n", | |
"36 NaN \n", | |
"37 NaN \n", | |
"38 NaN \n", | |
"39 NaN \n", | |
"40 NaN \n", | |
"41 特殊召喚封じ。魔法罠破壊できず。 \n", | |
"42 プレミをした。 \n", | |
"43 増殖するG, 灰流うらら NaN \n", | |
"44 ヴァレルロード+ダークロウ盤面出た瞬間サレンダー \n", | |
"45 増殖するG 増殖するGをPsyフレームで無効し、展開始めたらサレンダー \n", | |
"46 灰流うらら カオステリトリーに対するうららをPsyフレームで無効。展開を続けていたらサレンダー。 \n", | |
"47 増殖するG サレンダー、アビスがささる \n", | |
"48 灰流うらら 最初のサーチカードをうららで無効にする何も召喚できなかった相手はサレンダー \n", | |
"49 ハーピィの羽根帚を引いから罠を破壊できた \n", | |
"50 NaN " | |
] | |
}, | |
"execution_count": 749, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df_combine" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 750, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"df_combine.to_csv('MasterDuel_1-50.csv')\n", | |
"df_combine.to_excel('MasterDuel_1-50.xlsx')" | |
] | |
} | |
], | |
"metadata": { | |
"interpreter": { | |
"hash": "6a19634eb33c5479826ec490c10857293e2fcbc0f1317d2520de4bd5a8793109" | |
}, | |
"kernelspec": { | |
"display_name": "Python 3.9.13 64-bit (windows store)", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.9.13" | |
}, | |
"orig_nbformat": 4 | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment