refactoring

This commit is contained in:
frankknoll
2023-03-28 15:01:31 +02:00
parent aaf250b08e
commit f44c0f8869
3 changed files with 92 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
class CountriesColumnAdder:
def addCountriesColumn(self, countriesByBatchcodeTable):
countriesByBatchcodeTable['Countries'] = countriesByBatchcodeTable.apply(self._getCountriesHavingEvents, axis='columns')
def addCountriesColumn(self, countriesByBatchcodeTable, columnName):
countriesByBatchcodeTable[columnName] = countriesByBatchcodeTable.apply(self._getCountriesHavingEvents, axis='columns')
return countriesByBatchcodeTable
def _getCountriesHavingEvents(self, eventCountByCountry):

View File

@@ -14,15 +14,16 @@ class CountriesColumnAdderTest(unittest.TestCase):
index = pd.Index(
name = 'Batchcode',
data = ['FE6208']))
columnName = 'Countries guessed'
# When
countriesByBatchcodeTableWithCountriesColumn = CountriesColumnAdder().addCountriesColumn(countriesByBatchcodeTable)
countriesByBatchcodeTableWithCountriesColumn = CountriesColumnAdder().addCountriesColumn(countriesByBatchcodeTable, columnName)
# Then
assert_frame_equal(
countriesByBatchcodeTableWithCountriesColumn,
TestHelper.createDataFrame(
columns = ['United States', 'Germany', 'Italy', 'Countries'],
columns = ['United States', 'Germany', 'Italy', columnName],
data = [ [20, 0, 3, {'United States', 'Italy'}]],
index = pd.Index(
name = 'Batchcode',

View File

@@ -210,6 +210,93 @@
"country_By_Batchcode_Search_Term"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5e3f6e61",
"metadata": {},
"outputs": [],
"source": [
"from CountriesColumnAdder import CountriesColumnAdder\n",
"\n",
"country_By_Batchcode_Search_Term = CountriesColumnAdder().addCountriesColumn(\n",
" country_By_Batchcode_Search_Term,\n",
" columnName = 'Countries guessed')\n",
"country_By_Batchcode_Search_Term"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5c1780b8",
"metadata": {},
"outputs": [],
"source": [
"country_By_Batchcode_Search_Term['Countries guessed']"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2ec46898",
"metadata": {},
"outputs": [],
"source": [
"# mi.droplevel('z')\n",
"country_By_Batchcode_Search_Term.index.droplevel('Batchcode Search Term')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0087d657",
"metadata": {},
"outputs": [],
"source": [
"country_By_Clicked_Batchcode = CountriesColumnAdder().addCountriesColumn(\n",
" country_By_Clicked_Batchcode,\n",
" columnName = 'Countries guessed')\n",
"country_By_Clicked_Batchcode"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "03193075",
"metadata": {},
"outputs": [],
"source": [
"country_By_Clicked_Batchcode2 = country_By_Clicked_Batchcode[['Countries guessed']]\n",
"country_By_Clicked_Batchcode2"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d6dd7355",
"metadata": {},
"outputs": [],
"source": [
"res = pd.merge(\n",
" batchCodeTable,\n",
" country_By_Clicked_Batchcode2,\n",
" how = 'left',\n",
" left_index = True,\n",
" right_index = True,\n",
" validate = 'one_to_one')\n",
"res"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b36ea0d4",
"metadata": {},
"outputs": [],
"source": [
"res[~res['Countries guessed'].isna()].to_excel('tmp/tableWithCountriesGuessed.xlsx')"
]
},
{
"cell_type": "code",
"execution_count": null,