Skip to content
Advertisement

How to enter new rows in a dataset by keeping same index

I am trying to enter into the following dataset:

data = [("Il nome della rosa","Umberto Eco", 1980), 
        ("L'amore che ti meriti","Daria Bignardi", 2014), 
        ("Memorie dal sottsuolo", " Fëdor Dostoevskij", 1864), 
        ("Oblomov", "Ivan Alexandrovich Goncharov ", 1859)]

index = range(1,5,1)
data = pd.DataFrame(data, columns = ["Books'Title", "Authors", "Publishing Year"], index = index)
data

pubhouses = ["Bompiani", "Mondadori", "Rizzoli", "Feltrinelli"]
data.insert(3, 'Publication House', pubhouses)
data

the rows:

newbook1 = ['Il demone meschino', 'Fëdor Sologub',  1907, 'Feltrinelli']
newbook2 = ['le anime morte', 'Nikolaj Vasilevič Gogol Janovskij',  1882, 'Garzanti']

As you could see, the dataset created with the first chunk of code turns a with the first row marked with index 1.

enter image description here

To maintain it, I used the following code to add two further rows where the new rows are added as follows at the last one of the original dataset:

data.loc[len(data.index[-1] + 1)] = [newbook1, newbook2]

But the code does not work. If possible I would like to ask someone how to deal with this issue and try to fix it. Thanks

Advertisement

Answer

Try:

# create temporary dataframe with desired index
idx = data.index.max() + 1
x = pd.DataFrame(
    [newbook1, newbook2],
    index=range(idx, idx + 2),
    columns=data.columns,
)

# concat the dataframes
data = pd.concat([data, x])
print(data)

Prints:

             Books'Title                            Authors  Publishing Year Publication House
1     Il nome della rosa                        Umberto Eco             1980          Bompiani
2  L'amore che ti meriti                     Daria Bignardi             2014         Mondadori
3  Memorie dal sottsuolo                  Fëdor Dostoevskij             1864           Rizzoli
4                Oblomov      Ivan Alexandrovich Goncharov              1859       Feltrinelli
5     Il demone meschino                      Fëdor Sologub             1907       Feltrinelli
6         le anime morte  Nikolaj Vasilevič Gogol Janovskij             1882          Garzanti
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement