{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# one-shot code to generate crosstable files\n",
"\n",
"Should only need to use this once. \n",
"\n",
"Grabbing these objects: \n",
"* cross_counterid_techniqueid\n",
"* cross_counterid_resourceid\n",
"* cross_counterid_actortypeid\n",
"* cross_detectionid_techniqueid \n",
"* cross_detectionid_resourceid\n",
"* cross_detectionid_actortypeid "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from generate_DISARM_pages import Disarm\n",
"MASTERDATA_DIR = '../DISARM_MASTER_DATA/'\n",
"\n",
"disarm = Disarm()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def grab_crosstable(df, column, outfile):\n",
" df = df[df[column] != '']\n",
" df.to_csv(MASTERDATA_DIR + outfile, index=False)\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" disarm_id | \n",
" technique_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" C00022 | \n",
" T0001 | \n",
"
\n",
" \n",
" 0 | \n",
" C00022 | \n",
" T0002 | \n",
"
\n",
" \n",
" 0 | \n",
" C00022 | \n",
" T0003 | \n",
"
\n",
" \n",
" 0 | \n",
" C00022 | \n",
" T0006 | \n",
"
\n",
" \n",
" 0 | \n",
" C00022 | \n",
" T0027 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 134 | \n",
" C00216 | \n",
" T0018 | \n",
"
\n",
" \n",
" 134 | \n",
" C00216 | \n",
" T0057 | \n",
"
\n",
" \n",
" 135 | \n",
" C00219 | \n",
" T0024 | \n",
"
\n",
" \n",
" 135 | \n",
" C00219 | \n",
" T0026 | \n",
"
\n",
" \n",
" 135 | \n",
" C00219 | \n",
" T0025 | \n",
"
\n",
" \n",
"
\n",
"
881 rows × 2 columns
\n",
"
"
],
"text/plain": [
" disarm_id technique_id\n",
"0 C00022 T0001\n",
"0 C00022 T0002\n",
"0 C00022 T0003\n",
"0 C00022 T0006\n",
"0 C00022 T0027\n",
".. ... ...\n",
"134 C00216 T0018\n",
"134 C00216 T0057\n",
"135 C00219 T0024\n",
"135 C00219 T0026\n",
"135 C00219 T0025\n",
"\n",
"[881 rows x 2 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grab_crosstable(disarm.cross_counterid_techniqueid, \n",
" 'technique_id', 'cross_counter_technique.csv')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" disarm_id | \n",
" resource_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 26 | \n",
" C00044 | \n",
" R004 | \n",
"
\n",
" \n",
" 59 | \n",
" C00092 | \n",
" R001 | \n",
"
\n",
" \n",
" 63 | \n",
" C00097 | \n",
" R004 | \n",
"
\n",
" \n",
" 65 | \n",
" C00099 | \n",
" R004 | \n",
"
\n",
" \n",
" 67 | \n",
" C00101 | \n",
" R004 | \n",
"
\n",
" \n",
" 69 | \n",
" C00105 | \n",
" R003 | \n",
"
\n",
" \n",
" 99 | \n",
" C00142 | \n",
" R004 | \n",
"
\n",
" \n",
" 102 | \n",
" C00147 | \n",
" R004 | \n",
"
\n",
" \n",
" 103 | \n",
" C00148 | \n",
" R004 | \n",
"
\n",
" \n",
" 126 | \n",
" C00195 | \n",
" R002 | \n",
"
\n",
" \n",
" 127 | \n",
" C00197 | \n",
" R003 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" disarm_id resource_id\n",
"26 C00044 R004\n",
"59 C00092 R001\n",
"63 C00097 R004\n",
"65 C00099 R004\n",
"67 C00101 R004\n",
"69 C00105 R003\n",
"99 C00142 R004\n",
"102 C00147 R004\n",
"103 C00148 R004\n",
"126 C00195 R002\n",
"127 C00197 R003"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grab_crosstable(disarm.cross_counterid_resourceid, \n",
" 'resource_id', 'cross_counter_resource.csv')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" disarm_id | \n",
" actortype_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 1 | \n",
" C00006 | \n",
" A033 | \n",
"
\n",
" \n",
" 2 | \n",
" C00008 | \n",
" A007 | \n",
"
\n",
" \n",
" 3 | \n",
" C00009 | \n",
" A016 | \n",
"
\n",
" \n",
" 3 | \n",
" C00009 | \n",
" A006 | \n",
"
\n",
" \n",
" 4 | \n",
" C00010 | \n",
" A020 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 132 | \n",
" C00207 | \n",
" A018 | \n",
"
\n",
" \n",
" 132 | \n",
" C00207 | \n",
" A033 | \n",
"
\n",
" \n",
" 133 | \n",
" C00212 | \n",
" A006 | \n",
"
\n",
" \n",
" 133 | \n",
" C00212 | \n",
" A018 | \n",
"
\n",
" \n",
" 134 | \n",
" C00216 | \n",
" A023 | \n",
"
\n",
" \n",
"
\n",
"
79 rows × 2 columns
\n",
"
"
],
"text/plain": [
" disarm_id actortype_id\n",
"1 C00006 A033\n",
"2 C00008 A007\n",
"3 C00009 A016\n",
"3 C00009 A006\n",
"4 C00010 A020\n",
".. ... ...\n",
"132 C00207 A018\n",
"132 C00207 A033\n",
"133 C00212 A006\n",
"133 C00212 A018\n",
"134 C00216 A023\n",
"\n",
"[79 rows x 2 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grab_crosstable(disarm.cross_counterid_actortypeid, \n",
" 'actortype_id', 'cross_counter_actortype.csv')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" disarm_id | \n",
" technique_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" F00001 | \n",
" All | \n",
"
\n",
" \n",
" 1 | \n",
" F00002 | \n",
" T0049 | \n",
"
\n",
" \n",
" 1 | \n",
" F00002 | \n",
" T0052 | \n",
"
\n",
" \n",
" 1 | \n",
" F00002 | \n",
" T0053 | \n",
"
\n",
" \n",
" 1 | \n",
" F00002 | \n",
" T0054 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 82 | \n",
" F00083 | \n",
" T0012 | \n",
"
\n",
" \n",
" 82 | \n",
" F00083 | \n",
" T0021 | \n",
"
\n",
" \n",
" 92 | \n",
" F00093 | \n",
" T0011 | \n",
"
\n",
" \n",
" 93 | \n",
" F00094 | \n",
" T0013 | \n",
"
\n",
" \n",
" 93 | \n",
" F00094 | \n",
" T0008 | \n",
"
\n",
" \n",
"
\n",
"
159 rows × 2 columns
\n",
"
"
],
"text/plain": [
" disarm_id technique_id\n",
"0 F00001 All\n",
"1 F00002 T0049\n",
"1 F00002 T0052\n",
"1 F00002 T0053\n",
"1 F00002 T0054\n",
".. ... ...\n",
"82 F00083 T0012\n",
"82 F00083 T0021\n",
"92 F00093 T0011\n",
"93 F00094 T0013\n",
"93 F00094 T0008\n",
"\n",
"[159 rows x 2 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grab_crosstable(disarm.cross_detectionid_techniqueid, \n",
" 'technique_id', 'cross_detection_technique.csv')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" disarm_id | \n",
" resource_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 19 | \n",
" F00020 | \n",
" R004 | \n",
"
\n",
" \n",
" 81 | \n",
" F00082 | \n",
" R005 | \n",
"
\n",
" \n",
" 91 | \n",
" F00092 | \n",
" R006 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" disarm_id resource_id\n",
"19 F00020 R004\n",
"81 F00082 R005\n",
"91 F00092 R006"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grab_crosstable(disarm.cross_detectionid_resourceid, \n",
" 'resource_id', 'cross_detection_resource.csv')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" disarm_id | \n",
" actortype_id | \n",
"
\n",
" \n",
" \n",
" \n",
" 19 | \n",
" F00020 | \n",
" A015 | \n",
"
\n",
" \n",
" 19 | \n",
" F00020 | \n",
" A001 | \n",
"
\n",
" \n",
" 19 | \n",
" F00020 | \n",
" A031 | \n",
"
\n",
" \n",
" 42 | \n",
" F00043 | \n",
" A031 | \n",
"
\n",
" \n",
" 42 | \n",
" F00043 | \n",
" A015 | \n",
"
\n",
" \n",
" 66 | \n",
" F00067 | \n",
" A001 | \n",
"
\n",
" \n",
" 69 | \n",
" F00070 | \n",
" A001 | \n",
"
\n",
" \n",
" 70 | \n",
" F00071 | \n",
" A001 | \n",
"
\n",
" \n",
" 71 | \n",
" F00072 | \n",
" A001 | \n",
"
\n",
" \n",
" 78 | \n",
" F00079 | \n",
" A001 | \n",
"
\n",
" \n",
" 79 | \n",
" F00080 | \n",
" A015 | \n",
"
\n",
" \n",
" 81 | \n",
" F00082 | \n",
" A028 | \n",
"
\n",
" \n",
" 90 | \n",
" F00091 | \n",
" A001 | \n",
"
\n",
" \n",
" 90 | \n",
" F00091 | \n",
" A024 | \n",
"
\n",
" \n",
" 91 | \n",
" F00092 | \n",
" A015 | \n",
"
\n",
" \n",
" 93 | \n",
" F00094 | \n",
" A028 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" disarm_id actortype_id\n",
"19 F00020 A015\n",
"19 F00020 A001\n",
"19 F00020 A031\n",
"42 F00043 A031\n",
"42 F00043 A015\n",
"66 F00067 A001\n",
"69 F00070 A001\n",
"70 F00071 A001\n",
"71 F00072 A001\n",
"78 F00079 A001\n",
"79 F00080 A015\n",
"81 F00082 A028\n",
"90 F00091 A001\n",
"90 F00091 A024\n",
"91 F00092 A015\n",
"93 F00094 A028"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grab_crosstable(disarm.cross_detectionid_actortypeid, \n",
" 'actortype_id', 'cross_detection_actortype.csv')"
]
},
{
"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
}