AMITT/HTML_GENERATING_CODE/AMITT_create_website_sql.ipynb
Sara-Jayne Terp 7b18be7238 Separated framework and datasets
Moved incidents into separate master data file.  Added groups and tools to it
2021-07-03 14:57:37 +01:00

1919 строки
67 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Create AMITT website sql\n",
"\n",
"Creates the sqlite file used as a datasource in the AMITT website tests. "
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\n"
]
}
],
"source": [
"hdatabase = \"postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\"\n",
"print(hdatabase)\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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>detection_id</th>\n",
" <th>tactic_id</th>\n",
" <th>main_tactic</th>\n",
" <th>summary</th>\n",
" <th>id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>F00003</td>\n",
" <td>TA06</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>F00003</td>\n",
" <td>TA08</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>F00003</td>\n",
" <td>TA09</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>F00006</td>\n",
" <td>TA05</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>F00006</td>\n",
" <td>TA07</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>F00006</td>\n",
" <td>TA08</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>F00006</td>\n",
" <td>TA09</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>F00006</td>\n",
" <td>TA10</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>F00006</td>\n",
" <td>TA11</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>F00015</td>\n",
" <td>TA07</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>F00016</td>\n",
" <td>TA08</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>F00016</td>\n",
" <td>TA09</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>F00016</td>\n",
" <td>TA10</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>F00016</td>\n",
" <td>TA11</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>F00021</td>\n",
" <td>TA03</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>F00021</td>\n",
" <td>TA04</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>F00021</td>\n",
" <td>TA05</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>F00021</td>\n",
" <td>TA06</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>F00021</td>\n",
" <td>TA07</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>F00021</td>\n",
" <td>TA08</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>F00021</td>\n",
" <td>TA09</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>F00021</td>\n",
" <td>TA10</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>F00021</td>\n",
" <td>TA11</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>23</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>F00025</td>\n",
" <td>TA01</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>F00025</td>\n",
" <td>TA02</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>F00029</td>\n",
" <td>TA01</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>26</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>F00030</td>\n",
" <td>TA03</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>F00030</td>\n",
" <td>TA04</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>F00030</td>\n",
" <td>TA05</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>29</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>F00030</td>\n",
" <td>TA06</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>F00030</td>\n",
" <td>TA08</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>F00030</td>\n",
" <td>TA09</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>32</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>F00030</td>\n",
" <td>TA10</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>F00031</td>\n",
" <td>TA01</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>34</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>F00035</td>\n",
" <td>TA01</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>F00037</td>\n",
" <td>TA01</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>F00046</td>\n",
" <td>TA08</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>F00058</td>\n",
" <td>TA07</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>38</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>F00058</td>\n",
" <td>TA09</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>39</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>F00058</td>\n",
" <td>TA10</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>F00062</td>\n",
" <td>TA09</td>\n",
" <td>N</td>\n",
" <td>N/A</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>F00001</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>42</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>F00002</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>F00003</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>44</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>F00004</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>F00005</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>46</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>F00006</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>47</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>F00007</td>\n",
" <td>TA02</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>F00008</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>49</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>F00009</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>F00010</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>51</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>F00011</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>52</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>F00012</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>F00013</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>F00014</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>F00015</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>F00016</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>57</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>F00017</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>58</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>F00018</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>F00019</td>\n",
" <td>TA04</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>F00020</td>\n",
" <td>TA04</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>F00021</td>\n",
" <td>TA04</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>62</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>F00022</td>\n",
" <td>TA04</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>F00023</td>\n",
" <td>TA04</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>64</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>F00024</td>\n",
" <td>TA04</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>65</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>F00025</td>\n",
" <td>TA05</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>66</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>F00026</td>\n",
" <td>TA05</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>67</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>F00027</td>\n",
" <td>TA05</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>68</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>F00028</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>69</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>F00029</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>70</th>\n",
" <td>F00030</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>71</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>F00031</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>72</td>\n",
" </tr>\n",
" <tr>\n",
" <th>72</th>\n",
" <td>F00032</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>73</th>\n",
" <td>F00033</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>74</td>\n",
" </tr>\n",
" <tr>\n",
" <th>74</th>\n",
" <td>F00034</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75</th>\n",
" <td>F00035</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>76</td>\n",
" </tr>\n",
" <tr>\n",
" <th>76</th>\n",
" <td>F00036</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>77</th>\n",
" <td>F00037</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>78</th>\n",
" <td>F00038</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>79</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79</th>\n",
" <td>F00039</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>80</th>\n",
" <td>F00040</td>\n",
" <td>TA06</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>81</th>\n",
" <td>F00041</td>\n",
" <td>TA07</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>82</td>\n",
" </tr>\n",
" <tr>\n",
" <th>82</th>\n",
" <td>F00042</td>\n",
" <td>TA07</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>83</td>\n",
" </tr>\n",
" <tr>\n",
" <th>83</th>\n",
" <td>F00043</td>\n",
" <td>TA07</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>84</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84</th>\n",
" <td>F00044</td>\n",
" <td>TA08</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>85</th>\n",
" <td>F00045</td>\n",
" <td>TA08</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>86</th>\n",
" <td>F00046</td>\n",
" <td>TA08</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>87</th>\n",
" <td>F00047</td>\n",
" <td>TA08</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>88</td>\n",
" </tr>\n",
" <tr>\n",
" <th>88</th>\n",
" <td>F00048</td>\n",
" <td>TA08</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>89</th>\n",
" <td>F00049</td>\n",
" <td>TA08</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>F00050</td>\n",
" <td>TA08</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>91</th>\n",
" <td>F00051</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>92</td>\n",
" </tr>\n",
" <tr>\n",
" <th>92</th>\n",
" <td>F00052</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>93</td>\n",
" </tr>\n",
" <tr>\n",
" <th>93</th>\n",
" <td>F00053</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>94</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94</th>\n",
" <td>F00054</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>F00055</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>F00056</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>97</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>F00057</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>98</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>F00058</td>\n",
" <td>TA10</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>99</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>F00059</td>\n",
" <td>TA10</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100</th>\n",
" <td>F00060</td>\n",
" <td>TA10</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>101</th>\n",
" <td>F00061</td>\n",
" <td>TA10</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>102</th>\n",
" <td>F00062</td>\n",
" <td>TA11</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>103</th>\n",
" <td>F00063</td>\n",
" <td>TA11</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>104</th>\n",
" <td>F00064</td>\n",
" <td>TA11</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>105</td>\n",
" </tr>\n",
" <tr>\n",
" <th>105</th>\n",
" <td>F00065</td>\n",
" <td>TA11</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>106</th>\n",
" <td>F00066</td>\n",
" <td>TA11</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>107</td>\n",
" </tr>\n",
" <tr>\n",
" <th>107</th>\n",
" <td>F00067</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>108</td>\n",
" </tr>\n",
" <tr>\n",
" <th>108</th>\n",
" <td>F00068</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>109</td>\n",
" </tr>\n",
" <tr>\n",
" <th>109</th>\n",
" <td>F00069</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>110</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110</th>\n",
" <td>F00070</td>\n",
" <td>ALL</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>111</td>\n",
" </tr>\n",
" <tr>\n",
" <th>111</th>\n",
" <td>F00071</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>112</th>\n",
" <td>F00072</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>113</td>\n",
" </tr>\n",
" <tr>\n",
" <th>113</th>\n",
" <td>F00073</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>114</th>\n",
" <td>F00074</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>115</td>\n",
" </tr>\n",
" <tr>\n",
" <th>115</th>\n",
" <td>F00075</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>116</td>\n",
" </tr>\n",
" <tr>\n",
" <th>116</th>\n",
" <td>F00076</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>117</td>\n",
" </tr>\n",
" <tr>\n",
" <th>117</th>\n",
" <td>F00077</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>118</th>\n",
" <td>F00078</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>119</td>\n",
" </tr>\n",
" <tr>\n",
" <th>119</th>\n",
" <td>F00079</td>\n",
" <td>TA05</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>120</td>\n",
" </tr>\n",
" <tr>\n",
" <th>120</th>\n",
" <td>F00080</td>\n",
" <td>TA07</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>121</td>\n",
" </tr>\n",
" <tr>\n",
" <th>121</th>\n",
" <td>F00081</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>122</td>\n",
" </tr>\n",
" <tr>\n",
" <th>122</th>\n",
" <td>F00082</td>\n",
" <td>TA11</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>123</th>\n",
" <td>F00083</td>\n",
" <td>TA11</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>124</td>\n",
" </tr>\n",
" <tr>\n",
" <th>124</th>\n",
" <td>F00084</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>125</td>\n",
" </tr>\n",
" <tr>\n",
" <th>125</th>\n",
" <td>F00085</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>126</td>\n",
" </tr>\n",
" <tr>\n",
" <th>126</th>\n",
" <td>F00086</td>\n",
" <td>TA02</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>127</td>\n",
" </tr>\n",
" <tr>\n",
" <th>127</th>\n",
" <td>F00087</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>128</td>\n",
" </tr>\n",
" <tr>\n",
" <th>128</th>\n",
" <td>F00088</td>\n",
" <td></td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>129</th>\n",
" <td>F00089</td>\n",
" <td>TA04</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>130</td>\n",
" </tr>\n",
" <tr>\n",
" <th>130</th>\n",
" <td>F00090</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>131</th>\n",
" <td>F00091</td>\n",
" <td>TA01</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>132</th>\n",
" <td>F00092</td>\n",
" <td>TA09</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>133</td>\n",
" </tr>\n",
" <tr>\n",
" <th>133</th>\n",
" <td>F00093</td>\n",
" <td>TA03</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>134</th>\n",
" <td>F00094</td>\n",
" <td>TA07</td>\n",
" <td>Y</td>\n",
" <td>N/A</td>\n",
" <td>135</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" detection_id tactic_id main_tactic summary id\n",
"0 F00003 TA06 N N/A 1\n",
"1 F00003 TA08 N N/A 2\n",
"2 F00003 TA09 N N/A 3\n",
"3 F00006 TA05 N N/A 4\n",
"4 F00006 TA07 N N/A 5\n",
"5 F00006 TA08 N N/A 6\n",
"6 F00006 TA09 N N/A 7\n",
"7 F00006 TA10 N N/A 8\n",
"8 F00006 TA11 N N/A 9\n",
"9 F00015 TA07 N N/A 10\n",
"10 F00016 TA08 N N/A 11\n",
"11 F00016 TA09 N N/A 12\n",
"12 F00016 TA10 N N/A 13\n",
"13 F00016 TA11 N N/A 14\n",
"14 F00021 TA03 N N/A 15\n",
"15 F00021 TA04 N N/A 16\n",
"16 F00021 TA05 N N/A 17\n",
"17 F00021 TA06 N N/A 18\n",
"18 F00021 TA07 N N/A 19\n",
"19 F00021 TA08 N N/A 20\n",
"20 F00021 TA09 N N/A 21\n",
"21 F00021 TA10 N N/A 22\n",
"22 F00021 TA11 N N/A 23\n",
"23 F00025 TA01 N N/A 24\n",
"24 F00025 TA02 N N/A 25\n",
"25 F00029 TA01 N N/A 26\n",
"26 F00030 TA03 N N/A 27\n",
"27 F00030 TA04 N N/A 28\n",
"28 F00030 TA05 N N/A 29\n",
"29 F00030 TA06 N N/A 30\n",
"30 F00030 TA08 N N/A 31\n",
"31 F00030 TA09 N N/A 32\n",
"32 F00030 TA10 N N/A 33\n",
"33 F00031 TA01 N N/A 34\n",
"34 F00035 TA01 N N/A 35\n",
"35 F00037 TA01 N N/A 36\n",
"36 F00046 TA08 N N/A 37\n",
"37 F00058 TA07 N N/A 38\n",
"38 F00058 TA09 N N/A 39\n",
"39 F00058 TA10 N N/A 40\n",
"40 F00062 TA09 N N/A 41\n",
"41 F00001 TA01 Y N/A 42\n",
"42 F00002 TA01 Y N/A 43\n",
"43 F00003 TA01 Y N/A 44\n",
"44 F00004 TA01 Y N/A 45\n",
"45 F00005 TA01 Y N/A 46\n",
"46 F00006 TA01 Y N/A 47\n",
"47 F00007 TA02 Y N/A 48\n",
"48 F00008 TA03 Y N/A 49\n",
"49 F00009 TA03 Y N/A 50\n",
"50 F00010 TA03 Y N/A 51\n",
"51 F00011 TA03 Y N/A 52\n",
"52 F00012 TA03 Y N/A 53\n",
"53 F00013 TA03 Y N/A 54\n",
"54 F00014 TA03 Y N/A 55\n",
"55 F00015 TA03 Y N/A 56\n",
"56 F00016 TA03 Y N/A 57\n",
"57 F00017 TA03 Y N/A 58\n",
"58 F00018 TA03 Y N/A 59\n",
"59 F00019 TA04 Y N/A 60\n",
"60 F00020 TA04 Y N/A 61\n",
"61 F00021 TA04 Y N/A 62\n",
"62 F00022 TA04 Y N/A 63\n",
"63 F00023 TA04 Y N/A 64\n",
"64 F00024 TA04 Y N/A 65\n",
"65 F00025 TA05 Y N/A 66\n",
"66 F00026 TA05 Y N/A 67\n",
"67 F00027 TA05 Y N/A 68\n",
"68 F00028 TA06 Y N/A 69\n",
"69 F00029 TA06 Y N/A 70\n",
"70 F00030 TA06 Y N/A 71\n",
"71 F00031 TA06 Y N/A 72\n",
"72 F00032 TA06 Y N/A 73\n",
"73 F00033 TA06 Y N/A 74\n",
"74 F00034 TA06 Y N/A 75\n",
"75 F00035 TA06 Y N/A 76\n",
"76 F00036 TA06 Y N/A 77\n",
"77 F00037 TA06 Y N/A 78\n",
"78 F00038 TA06 Y N/A 79\n",
"79 F00039 TA06 Y N/A 80\n",
"80 F00040 TA06 Y N/A 81\n",
"81 F00041 TA07 Y N/A 82\n",
"82 F00042 TA07 Y N/A 83\n",
"83 F00043 TA07 Y N/A 84\n",
"84 F00044 TA08 Y N/A 85\n",
"85 F00045 TA08 Y N/A 86\n",
"86 F00046 TA08 Y N/A 87\n",
"87 F00047 TA08 Y N/A 88\n",
"88 F00048 TA08 Y N/A 89\n",
"89 F00049 TA08 Y N/A 90\n",
"90 F00050 TA08 Y N/A 91\n",
"91 F00051 TA09 Y N/A 92\n",
"92 F00052 TA09 Y N/A 93\n",
"93 F00053 TA09 Y N/A 94\n",
"94 F00054 TA09 Y N/A 95\n",
"95 F00055 TA09 Y N/A 96\n",
"96 F00056 TA09 Y N/A 97\n",
"97 F00057 TA09 Y N/A 98\n",
"98 F00058 TA10 Y N/A 99\n",
"99 F00059 TA10 Y N/A 100\n",
"100 F00060 TA10 Y N/A 101\n",
"101 F00061 TA10 Y N/A 102\n",
"102 F00062 TA11 Y N/A 103\n",
"103 F00063 TA11 Y N/A 104\n",
"104 F00064 TA11 Y N/A 105\n",
"105 F00065 TA11 Y N/A 106\n",
"106 F00066 TA11 Y N/A 107\n",
"107 F00067 Y N/A 108\n",
"108 F00068 Y N/A 109\n",
"109 F00069 Y N/A 110\n",
"110 F00070 ALL Y N/A 111\n",
"111 F00071 Y N/A 112\n",
"112 F00072 Y N/A 113\n",
"113 F00073 Y N/A 114\n",
"114 F00074 Y N/A 115\n",
"115 F00075 Y N/A 116\n",
"116 F00076 Y N/A 117\n",
"117 F00077 TA03 Y N/A 118\n",
"118 F00078 TA03 Y N/A 119\n",
"119 F00079 TA05 Y N/A 120\n",
"120 F00080 TA07 Y N/A 121\n",
"121 F00081 TA09 Y N/A 122\n",
"122 F00082 TA11 Y N/A 123\n",
"123 F00083 TA11 Y N/A 124\n",
"124 F00084 TA03 Y N/A 125\n",
"125 F00085 Y N/A 126\n",
"126 F00086 TA02 Y N/A 127\n",
"127 F00087 Y N/A 128\n",
"128 F00088 Y N/A 129\n",
"129 F00089 TA04 Y N/A 130\n",
"130 F00090 TA01 Y N/A 131\n",
"131 F00091 TA01 Y N/A 132\n",
"132 F00092 TA09 Y N/A 133\n",
"133 F00093 TA03 Y N/A 134\n",
"134 F00094 TA07 Y N/A 135"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get AMITT variables\n",
"\n",
"import pandas as pd\n",
"import sqlite3 as sql\n",
"import os\n",
"from sqlalchemy import create_engine\n",
"from generate_amitt_ttps import Amitt\n",
"pd.set_option('display.max_rows', 1000)\n",
"\n",
"\n",
"# Generate AMITT datasets\n",
"amitt = Amitt()\n",
"\n",
"dbasetype = 'postgresql_local' #'sqlite' #'heroku'\n",
"\n",
"\n",
"# Create connection to database\n",
"if dbasetype == 'sqlite':\n",
" # Generate minimal sqlite database from the Amitt variables\n",
" conn = sql.connect('amittsite.sqlite')\n",
"elif dbasetype == 'postgresql_local':\n",
" conn = create_engine('postgresql://sara:@localhost:5432/amittsite')\n",
"else:\n",
" conn = create_engine(\"postgres://msenahnnwvuamr:227b5aeb1268572ab2d77f3158aecbdd50326bfff3026ab61aebb0fdcb0953a7@ec2-54-162-119-125.compute-1.amazonaws.com:5432/demudug8oqb3h0\")\n",
"\n",
" \n",
"# Add table to database \n",
"def add_table(dataframe, tablename, columns): \n",
" # Create sql-appropriate table from dataframe\n",
" colnames = ', '.join(['{} TEXT NOT NULL'.format(col) for col in columns])\n",
" newtable = dataframe[columns].copy().applymap(str)\n",
" newtable['id'] = range(1,len(newtable)+1)\n",
" \n",
" # send to database\n",
" if dbasetype == 'sqlite':\n",
" conn.execute(\"DROP TABLE IF EXISTS {}\".format(tablename))\n",
" conn.execute('''CREATE TABLE {} (id INTEGER PRIMARY KEY AUTOINCREMENT, {});'''.format(tablename, colnames))\n",
" newtable.to_sql(tablename, conn, index=False, if_exists='append')\n",
" conn.commit()\n",
" elif dbasetype == 'postgresql_local':\n",
" newtable.to_sql(tablename, conn, index=False, if_exists='replace')\n",
" else:\n",
" newtable.to_sql(tablename, conn, index=False, if_exists='append')\n",
" return newtable\n",
"\n",
"# Build a cross-table\n",
"def object_tactics_techniques(objectcol, objecttable, crosstable):\n",
" # objects to techniques\n",
" ctech = crosstable.copy()\n",
" ctech = ctech[(ctech['technique_id'] != '') & (~ctech['technique_id'].str.startswith('TA'))]\n",
" ctech.rename(columns={'amitt_id':objectcol}, inplace=True)\n",
" ctech['summary'] = 'N/A'\n",
"\n",
" # objects to tactics\n",
" ctact = crosstable[crosstable['technique_id'].str.startswith('TA')].copy()\n",
" ctact.rename(columns={'amitt_id':objectcol, 'technique_id': 'tactic_id'}, inplace=True)\n",
" ctact['main_tactic'] = 'N'\n",
" ctactmain = objecttable[['amitt_id', 'tactic_id']].copy()\n",
" ctactmain.rename(columns={'amitt_id':objectcol}, inplace=True)\n",
" ctactmain['main_tactic'] = 'Y'\n",
" ctact = pd.concat([ctact, ctactmain], ignore_index=True, sort=False)\n",
" ctact['summary'] = 'N/A'\n",
" return(ctech, ctact)\n",
"\n",
"\n",
"#Load all the tables - Heroku needs them in correct order... \n",
"\n",
"#newtable = add_table(amitt.df_actortypes, 'actor_type', ['amitt_id', 'sector_id', 'framework_id', 'name', 'summary'])\n",
"# counter\n",
"newtable = add_table(amitt.df_counters, 'counter', ['amitt_id', 'tactic_id', 'metatechnique_id', 'name', 'summary'])\n",
"newtable = add_table(amitt.df_detections, 'detection', ['amitt_id', 'tactic_id', 'name', 'summary'])\n",
"# dataset\n",
"newtable = add_table(amitt.df_frameworks, 'framework', ['amitt_id', 'name', 'summary'])\n",
"# incident\n",
"# metatechnique\n",
"newtable = add_table(amitt.df_metatechniques, 'metatechnique', ['amitt_id', 'name', 'summary'])\n",
"newtable = add_table(amitt.df_phases, 'phase', ['amitt_id', 'name', 'rank', 'summary'])\n",
"# playbook\n",
"# reference\n",
"# response_type\n",
"# sector\n",
"newtable = add_table(amitt.df_tactics, 'tactic', ['amitt_id', 'phase_id', 'name', 'rank', 'summary'])\n",
"newtable = add_table(amitt.df_tasks, 'task', ['amitt_id', 'tactic_id', 'framework_id', 'name', 'summary'])\n",
"newtable = add_table(amitt.df_techniques, 'technique', ['amitt_id', 'tactic_id', 'name', 'summary'])\n",
"\n",
"(ctech, ctact) = object_tactics_techniques('counter_id', amitt.df_counters, amitt.cross_counterid_techniqueid)\n",
"newtable = add_table(ctech, 'counter_technique', ['counter_id', 'technique_id', 'summary'])\n",
"newtable = add_table(ctact, 'counter_tactic', ['counter_id', 'tactic_id', 'main_tactic', 'summary'])\n",
"\n",
"(dtech, dtact) = object_tactics_techniques('detection_id', amitt.df_detections, amitt.cross_detectionid_techniqueid)\n",
"newtable = add_table(dtech, 'detection_technique', ['detection_id', 'technique_id', 'summary'])\n",
"newtable = add_table(dtact, 'detection_tactic', ['detection_id', 'tactic_id', 'main_tactic', 'summary'])\n",
"\n",
"if dbasetype == 'sqlite':\n",
" conn.execute(\"DROP TABLE IF EXISTS {}\".format('users'))\n",
" conn.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL);''')\n",
" conn.close()\n",
"else:\n",
" dfusers = pd.DataFrame([['test','testing']], columns=['username', 'password'])\n",
" usertable = add_table(dfusers, 'users', ['username', 'password'])\n",
"\n",
"newtable"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## test area"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dict_keys(['df_phases', 'df_frameworks', 'df_techniques', 'df_tasks', 'df_incidents', 'df_counters', 'df_detections', 'df_actortypes', 'df_resources', 'df_responsetypes', 'df_metatechniques', 'it', 'df_tactics', 'df_techniques_per_tactic', 'df_counters_per_tactic', 'phases', 'tactics', 'techniques', 'counters', 'metatechniques', 'actortypes', 'resources', 'num_tactics', 'cross_counterid_techniqueid', 'cross_counterid_resourceid', 'cross_counterid_actortypeid', 'cross_detectionid_techniqueid', 'cross_detectionid_resourceid', 'cross_detectionid_actortypeid'])\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>amitt_id</th>\n",
" <th>name</th>\n",
" <th>summary</th>\n",
" <th>sector</th>\n",
" <th>viewpoint</th>\n",
" <th>longname</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>A001</td>\n",
" <td>data scientist</td>\n",
" <td>Person who can wrangle data, implement machine...</td>\n",
" <td>All</td>\n",
" <td>both</td>\n",
" <td>A001 - data scientist</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>A002</td>\n",
" <td>target</td>\n",
" <td>Person being targeted by disinformation campaign</td>\n",
" <td>All</td>\n",
" <td>blue</td>\n",
" <td>A002 - target</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>A003</td>\n",
" <td>trusted authority</td>\n",
" <td>Influencer</td>\n",
" <td>All</td>\n",
" <td>both</td>\n",
" <td>A003 - trusted authority</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>A004</td>\n",
" <td>activist</td>\n",
" <td></td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A004 - activist</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>A005</td>\n",
" <td>community group</td>\n",
" <td></td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A005 - community group</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>A006</td>\n",
" <td>educator</td>\n",
" <td></td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A006 - educator</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>A007</td>\n",
" <td>factchecker</td>\n",
" <td>Someone with the skills to verify whether info...</td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A007 - factchecker</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>A008</td>\n",
" <td>library</td>\n",
" <td></td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A008 - library</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>A009</td>\n",
" <td>NGO</td>\n",
" <td></td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A009 - NGO</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>A010</td>\n",
" <td>religious organisation</td>\n",
" <td></td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A010 - religious organisation</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>A011</td>\n",
" <td>school</td>\n",
" <td></td>\n",
" <td>Civil Society</td>\n",
" <td>blue</td>\n",
" <td>A011 - school</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>A012</td>\n",
" <td>account owner</td>\n",
" <td>Anyone who owns an account online</td>\n",
" <td>General Public</td>\n",
" <td>both</td>\n",
" <td>A012 - account owner</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>A013</td>\n",
" <td>content creator</td>\n",
" <td></td>\n",
" <td>General Public</td>\n",
" <td>both</td>\n",
" <td>A013 - content creator</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>A014</td>\n",
" <td>elves</td>\n",
" <td></td>\n",
" <td>General Public</td>\n",
" <td>blue</td>\n",
" <td>A014 - elves</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>A015</td>\n",
" <td>general public</td>\n",
" <td></td>\n",
" <td>General Public</td>\n",
" <td>blue</td>\n",
" <td>A015 - general public</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>A016</td>\n",
" <td>influencer</td>\n",
" <td></td>\n",
" <td>General Public</td>\n",
" <td>both</td>\n",
" <td>A016 - influencer</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>A017</td>\n",
" <td>coordinating body</td>\n",
" <td>For example the DHS</td>\n",
" <td>Government</td>\n",
" <td>blue</td>\n",
" <td>A017 - coordinating body</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>A018</td>\n",
" <td>government</td>\n",
" <td>Government agencies</td>\n",
" <td>Government</td>\n",
" <td>both</td>\n",
" <td>A018 - government</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>A019</td>\n",
" <td>military</td>\n",
" <td></td>\n",
" <td>Government</td>\n",
" <td>blue</td>\n",
" <td>A019 - military</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>A020</td>\n",
" <td>policy maker</td>\n",
" <td></td>\n",
" <td>Government</td>\n",
" <td>blue</td>\n",
" <td>A020 - policy maker</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>A021</td>\n",
" <td>media organisation</td>\n",
" <td></td>\n",
" <td>Media</td>\n",
" <td>both</td>\n",
" <td>A021 - media organisation</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>A022</td>\n",
" <td>company</td>\n",
" <td></td>\n",
" <td>Other Company</td>\n",
" <td>blue</td>\n",
" <td>A022 - company</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>A023</td>\n",
" <td>adtech provider</td>\n",
" <td></td>\n",
" <td>Other Tech Company</td>\n",
" <td>blue</td>\n",
" <td>A023 - adtech provider</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>A024</td>\n",
" <td>developer</td>\n",
" <td></td>\n",
" <td>Other Tech Company</td>\n",
" <td>blue</td>\n",
" <td>A024 - developer</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>A025</td>\n",
" <td>funding_site_admin</td>\n",
" <td>Funding site admin</td>\n",
" <td>Other Tech Company</td>\n",
" <td>blue</td>\n",
" <td>A025 - funding_site_admin</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>A026</td>\n",
" <td>games designer</td>\n",
" <td></td>\n",
" <td>Other Tech Company</td>\n",
" <td>both</td>\n",
" <td>A026 - games designer</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>A027</td>\n",
" <td>information security</td>\n",
" <td></td>\n",
" <td>Other Tech Company</td>\n",
" <td>blue</td>\n",
" <td>A027 - information security</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>A028</td>\n",
" <td>platform administrator</td>\n",
" <td></td>\n",
" <td>Other Tech Company</td>\n",
" <td>blue</td>\n",
" <td>A028 - platform administrator</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>A029</td>\n",
" <td>server admininistrator</td>\n",
" <td></td>\n",
" <td>Other Tech Company</td>\n",
" <td>blue</td>\n",
" <td>A029 - server admininistrator</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>A030</td>\n",
" <td>platforms</td>\n",
" <td></td>\n",
" <td>Social Media Company</td>\n",
" <td>blue</td>\n",
" <td>A030 - platforms</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>A031</td>\n",
" <td>social media platform adminstrator</td>\n",
" <td>Person with the authority to make changes to a...</td>\n",
" <td>Social Media Company</td>\n",
" <td>blue</td>\n",
" <td>A031 - social media platform adminstrator</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>A032</td>\n",
" <td>social media platform outreach</td>\n",
" <td></td>\n",
" <td>Social Media Company</td>\n",
" <td>blue</td>\n",
" <td>A032 - social media platform outreach</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>A033</td>\n",
" <td>social media platform owner</td>\n",
" <td>Person with authority to make changes to a soc...</td>\n",
" <td>Social Media Company</td>\n",
" <td>blue</td>\n",
" <td>A033 - social media platform owner</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" amitt_id name \\\n",
"0 A001 data scientist \n",
"1 A002 target \n",
"2 A003 trusted authority \n",
"3 A004 activist \n",
"4 A005 community group \n",
"5 A006 educator \n",
"6 A007 factchecker \n",
"7 A008 library \n",
"8 A009 NGO \n",
"9 A010 religious organisation \n",
"10 A011 school \n",
"11 A012 account owner \n",
"12 A013 content creator \n",
"13 A014 elves \n",
"14 A015 general public \n",
"15 A016 influencer \n",
"16 A017 coordinating body \n",
"17 A018 government \n",
"18 A019 military \n",
"19 A020 policy maker \n",
"20 A021 media organisation \n",
"21 A022 company \n",
"22 A023 adtech provider \n",
"23 A024 developer \n",
"24 A025 funding_site_admin \n",
"25 A026 games designer \n",
"26 A027 information security \n",
"27 A028 platform administrator \n",
"28 A029 server admininistrator \n",
"29 A030 platforms \n",
"30 A031 social media platform adminstrator \n",
"31 A032 social media platform outreach \n",
"32 A033 social media platform owner \n",
"\n",
" summary sector \\\n",
"0 Person who can wrangle data, implement machine... All \n",
"1 Person being targeted by disinformation campaign All \n",
"2 Influencer All \n",
"3 Civil Society \n",
"4 Civil Society \n",
"5 Civil Society \n",
"6 Someone with the skills to verify whether info... Civil Society \n",
"7 Civil Society \n",
"8 Civil Society \n",
"9 Civil Society \n",
"10 Civil Society \n",
"11 Anyone who owns an account online General Public \n",
"12 General Public \n",
"13 General Public \n",
"14 General Public \n",
"15 General Public \n",
"16 For example the DHS Government \n",
"17 Government agencies Government \n",
"18 Government \n",
"19 Government \n",
"20 Media \n",
"21 Other Company \n",
"22 Other Tech Company \n",
"23 Other Tech Company \n",
"24 Funding site admin Other Tech Company \n",
"25 Other Tech Company \n",
"26 Other Tech Company \n",
"27 Other Tech Company \n",
"28 Other Tech Company \n",
"29 Social Media Company \n",
"30 Person with the authority to make changes to a... Social Media Company \n",
"31 Social Media Company \n",
"32 Person with authority to make changes to a soc... Social Media Company \n",
"\n",
" viewpoint longname \n",
"0 both A001 - data scientist \n",
"1 blue A002 - target \n",
"2 both A003 - trusted authority \n",
"3 blue A004 - activist \n",
"4 blue A005 - community group \n",
"5 blue A006 - educator \n",
"6 blue A007 - factchecker \n",
"7 blue A008 - library \n",
"8 blue A009 - NGO \n",
"9 blue A010 - religious organisation \n",
"10 blue A011 - school \n",
"11 both A012 - account owner \n",
"12 both A013 - content creator \n",
"13 blue A014 - elves \n",
"14 blue A015 - general public \n",
"15 both A016 - influencer \n",
"16 blue A017 - coordinating body \n",
"17 both A018 - government \n",
"18 blue A019 - military \n",
"19 blue A020 - policy maker \n",
"20 both A021 - media organisation \n",
"21 blue A022 - company \n",
"22 blue A023 - adtech provider \n",
"23 blue A024 - developer \n",
"24 blue A025 - funding_site_admin \n",
"25 both A026 - games designer \n",
"26 blue A027 - information security \n",
"27 blue A028 - platform administrator \n",
"28 blue A029 - server admininistrator \n",
"29 blue A030 - platforms \n",
"30 blue A031 - social media platform adminstrator \n",
"31 blue A032 - social media platform outreach \n",
"32 blue A033 - social media platform owner "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Check which amitt variables we can see from here\n",
"print('{}'.format(vars(amitt).keys()))\n",
"vars(amitt)['df_actortypes']"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import psycopg2\n",
"conn = psycopg2.connect(host=\"localhost\", port = 5432, \n",
" database=\"amittsite\", user=\"sara\", \n",
" password=\"\")\n",
"cur = conn.cursor()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sqlalchemy import create_engine\n",
"engine = create_engine('postgresql://sara:@localhost:5432/amittsite')\n",
"newtable.to_sql('test2', engine)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}