refactoring
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user