I'm trying to replicate/duplicate several rows in a dataframe by its index but I'm not making any close result to do so.
Given this DataFrame:
The code i have:
def duplicateDealers(self, data):
pd.options.display.width = 0
counter = 0
for index, row in data.iterrows():
brandColumn = 'Brand' + str(counter)
# print(index, row[brandColumn])
if str(row[brandColumn]) == 'Cadillac':
newData = pd.DataFrame(np.repeat(data.loc[int(index)], 1))
newData['Repeated'] = 'Yes'
print(newData.columns)
print(type(pd.DataFrame(np.repeat(data.loc[int(index)], 1))))
print(newData)
If I use the following code:
newData = pd.DataFrame(np.repeat(data.loc[int(index)], 1, axis=0))
I get this error:
ValueError: the 'axis' parameter is not supported in the pandas implementation of repeat()
What do I want to achieve with this code?
I iterate over rows and columns to identify the word "Cadillac" in the column "Brand0", if the condition is True then I want to duplicate the entire row by its index and maintain the original format of the row, then I will manipulate the new row data as I wish.
The output is the following (The column name "4108" is a random index, the DataFrame has a huge amount of records, over 5k):
And the output i want would be:
What am i doing wrong?
Regards and thank you.
EDIT:
Here's some sample data:
Source_ID | SecondaryName | PrimaryName | Address | City | State | Full_Postal_Code | Postal_Code | Country | Telephone | Brand0
123456 | JACK SCHMITT CADILLAC, INC. | JACK SCHMITT CADILLAC, INC. | 915 W HWY 50 | O FALLON | IL | 62269 | 62269 | USA | 6186321001 | Cadillac
987654 | JAMES E. BLACK CADILLAC | JAMES E. BLACK CADILLAC | 3929 ADMIRAL PEARY HWY | EBENSBURG | PA | 15931 | 15931 | USA | 8144729553 | Cadillac
753951 | COLE-VALLEY MOTOR COMPANY | COLE-VALLEY MOTOR COMPANY | 4111 ELM ROAD NE | WARREN | OH | 44483 | 44483 | USA | 3303721668 | Cadillac
159357 | MCDONALD GMC-CADILLAC, INC. | MCDONALD GMC-CADILLAC, INC. | 5155 STATE ST | SAGINAW | MI | 48603 | 48603 | USA | 9897905154 | Cadillac
456987 | DAVID BRUCE AUTO CENTER, INC. | DAVID BRUCE AUTO CENTER, INC. | 555 LATHAM DR | BOURBONNAIS | IL | 60914 | 60914 | USA | 8159337709 | Cadillac
321456 | JACK WOLF CADILLAC-GMC TRUCK, INC. | JACK WOLF CADILLAC-GMC TRUCK, INC. | 1855 N STATE ST | BELVIDERE | IL | 61008 | 61008 | USA | 8155443403 | Cadillac
EDIT 2:
Here more details about the goal I try to achieve:
Each row may have several BrandX columns, and according to its content, i will duplicate the row and add to the Source_ID the brand name and other stuff, so i can have the right amount of records according to the Dealer Brands.
DataFrame:
Source_ID | SecondaryName | PrimaryName | Address | City | State | Full_Postal_Code | Postal_Code | Country | Telephone | Brand0 | Brand1 | Brand2
123456 | JACK SCHMITT CADILLAC, INC. | JACK SCHMITT CADILLAC, INC. | 915 W HWY 50 | O FALLON | IL | 62269 | 62269 | USA | 6186321001 | Cadillac | GMC | Buick
987654 | JAMES E. BLACK CADILLAC | JAMES E. BLACK CADILLAC | 3929 ADMIRAL PEARY HWY | EBENSBURG | PA | 15931 | 15931 | USA | 8144729553 | Cadillac | NaN | GMC
753951 | COLE-VALLEY MOTOR COMPANY | COLE-VALLEY MOTOR COMPANY | 4111 ELM ROAD NE | WARREN | OH | 44483 | 44483 | USA | 3303721668 | Cadillac | Buick | NaN
159357 | MCDONALD GMC-CADILLAC, INC. | MCDONALD GMC-CADILLAC, INC. | 5155 STATE ST | SAGINAW | MI | 48603 | 48603 | USA | 9897905154 | Cadillac | Buick | NaN
456987 | DAVID BRUCE AUTO CENTER, INC. | DAVID BRUCE AUTO CENTER, INC. | 555 LATHAM DR | BOURBONNAIS | IL | 60914 | 60914 | USA | 8159337709 | Cadillac | Chevrolet | GMC
321456 | JACK WOLF CADILLAC-GMC TRUCK, INC. | JACK WOLF CADILLAC-GMC TRUCK, INC. | 1855 N STATE ST | BELVIDERE | IL | 61008 | 61008 | USA | 8155443403 | Cadillac | NaN | NaN
Expected Output:
Source_ID | SecondaryName | PrimaryName | Address | City | State | Full_Postal_Code | Postal_Code | Country | Telephone | Brand0 | Brand1 | Brand2
123456_Cadillac | JACK SCHMITT CADILLAC, INC. | JACK SCHMITT CADILLAC, INC. | 915 W HWY 50 | O FALLON | IL | 62269 | 62269 | USA | 6186321001 | Cadillac | GMC | Buick
123456_GMC | JACK SCHMITT CADILLAC, INC. | JACK SCHMITT CADILLAC, INC. | 915 W HWY 50 | O FALLON | IL | 62269 | 62269 | USA | 6186321001 | Cadillac | GMC | Buick
123456_Buick | JACK SCHMITT CADILLAC, INC. | JACK SCHMITT CADILLAC, INC. | 915 W HWY 50 | O FALLON | IL | 62269 | 62269 | USA | 6186321001 | Cadillac | GMC | Buick
987654_Cadillac | JAMES E. BLACK CADILLAC | JAMES E. BLACK CADILLAC | 3929 ADMIRAL PEARY HWY | EBENSBURG | PA | 15931 | 15931 | USA | 8144729553 | Cadillac | NaN | GMC
987654_GMC | JAMES E. BLACK CADILLAC | JAMES E. BLACK CADILLAC | 3929 ADMIRAL PEARY HWY | EBENSBURG | PA | 15931 | 15931 | USA | 8144729553 | Cadillac | NaN | GMC
753951_Cadillac | COLE-VALLEY MOTOR COMPANY | COLE-VALLEY MOTOR COMPANY | 4111 ELM ROAD NE | WARREN | OH | 44483 | 44483 | USA | 3303721668 | Cadillac | Buick | NaN
753951_GMC | COLE-VALLEY MOTOR COMPANY | COLE-VALLEY MOTOR COMPANY | 4111 ELM ROAD NE | WARREN | OH | 44483 | 44483 | USA | 3303721668 | Cadillac | Buick | NaN
159357_Cadillac | MCDONALD GMC-CADILLAC, INC. | MCDONALD GMC-CADILLAC, INC. | 5155 STATE ST | SAGINAW | MI | 48603 | 48603 | USA | 9897905154 | Cadillac | Buick | NaN
159357_Buick | MCDONALD GMC-CADILLAC, INC. | MCDONALD GMC-CADILLAC, INC. | 5155 STATE ST | SAGINAW | MI | 48603 | 48603 | USA | 9897905154 | Cadillac | Buick | NaN
456987_Cadillac | DAVID BRUCE AUTO CENTER, INC. | DAVID BRUCE AUTO CENTER, INC. | 555 LATHAM DR | BOURBONNAIS | IL | 60914 | 60914 | USA | 8159337709 | Cadillac | Chevrolet | GMC
456987_Chevrolet | DAVID BRUCE AUTO CENTER, INC. | DAVID BRUCE AUTO CENTER, INC. | 555 LATHAM DR | BOURBONNAIS | IL | 60914 | 60914 | USA | 8159337709 | Cadillac | Chevrolet | GMC
456987_GMC | DAVID BRUCE AUTO CENTER, INC. | DAVID BRUCE AUTO CENTER, INC. | 555 LATHAM DR | BOURBONNAIS | IL | 60914 | 60914 | USA | 8159337709 | Cadillac | Chevrolet | GMC
321456_Cadillac | JACK WOLF CADILLAC-GMC TRUCK, INC. | JACK WOLF CADILLAC-GMC TRUCK, INC. | 1855 N STATE ST | BELVIDERE | IL | 61008 | 61008 | USA | 8155443403 | Cadillac | NaN | NaN