refactoring
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
class CountriesColumnAdder:
|
class CountriesColumnAdder:
|
||||||
|
|
||||||
def addCountriesColumn(self, countriesByBatchcodeTable):
|
def addCountriesColumn(self, countriesByBatchcodeTable, columnName):
|
||||||
countriesByBatchcodeTable['Countries'] = countriesByBatchcodeTable.apply(self._getCountriesHavingEvents, axis='columns')
|
countriesByBatchcodeTable[columnName] = countriesByBatchcodeTable.apply(self._getCountriesHavingEvents, axis='columns')
|
||||||
return countriesByBatchcodeTable
|
return countriesByBatchcodeTable
|
||||||
|
|
||||||
def _getCountriesHavingEvents(self, eventCountByCountry):
|
def _getCountriesHavingEvents(self, eventCountByCountry):
|
||||||
|
|||||||
@@ -14,15 +14,16 @@ class CountriesColumnAdderTest(unittest.TestCase):
|
|||||||
index = pd.Index(
|
index = pd.Index(
|
||||||
name = 'Batchcode',
|
name = 'Batchcode',
|
||||||
data = ['FE6208']))
|
data = ['FE6208']))
|
||||||
|
columnName = 'Countries guessed'
|
||||||
|
|
||||||
# When
|
# When
|
||||||
countriesByBatchcodeTableWithCountriesColumn = CountriesColumnAdder().addCountriesColumn(countriesByBatchcodeTable)
|
countriesByBatchcodeTableWithCountriesColumn = CountriesColumnAdder().addCountriesColumn(countriesByBatchcodeTable, columnName)
|
||||||
|
|
||||||
# Then
|
# Then
|
||||||
assert_frame_equal(
|
assert_frame_equal(
|
||||||
countriesByBatchcodeTableWithCountriesColumn,
|
countriesByBatchcodeTableWithCountriesColumn,
|
||||||
TestHelper.createDataFrame(
|
TestHelper.createDataFrame(
|
||||||
columns = ['United States', 'Germany', 'Italy', 'Countries'],
|
columns = ['United States', 'Germany', 'Italy', columnName],
|
||||||
data = [ [20, 0, 3, {'United States', 'Italy'}]],
|
data = [ [20, 0, 3, {'United States', 'Italy'}]],
|
||||||
index = pd.Index(
|
index = pd.Index(
|
||||||
name = 'Batchcode',
|
name = 'Batchcode',
|
||||||
|
|||||||
@@ -210,6 +210,93 @@
|
|||||||
"country_By_Batchcode_Search_Term"
|
"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",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
|
|||||||
Reference in New Issue
Block a user