As a practice, I have created the following dataset of reading books:
JavaScript
x
9
1
data = [("Il nome della rosa","Umberto Eco", 1980),
2
("L'amore che ti meriti","Daria Bignardi", 2014),
3
("Memorie dal sottsuolo", " Fëdor Dostoevskij", 1864),
4
("Oblomov", "Ivan Alexandrovich Goncharov ", 1859)]
5
6
index = range(1,5,1)
7
df = pd.DataFrame(data, columns = ["Books'Title", "Authors", "Publishing Year"], index = index)
8
df
9
Then I added a fourth column as follows
JavaScript
1
4
1
pubhouses = ["Bompiani", "Mondadori", "Rizzoli", "Feltrinelli"]
2
df.insert(3, 'Publication Houses', pubhouses)
3
df
4
And now I would like to add as follows (I mean as rows 5 and 6) the following item, always by using the list
JavaScript
1
3
1
l_row = [("Le avventure di Pinocchio", "Carlo Collodi", 1883, "Giunti"),
2
('Libri che mi hanno rovinato la vita ed altri amori malinconici', "Daria Bignardi", 2022, "Mondadori")]
3
I have tried adding other titles
JavaScript
1
3
1
l_row = [("Le avventure di Pinocchio", "Carlo Collodi", 1883, "Giunti"),
2
('Libri che mi hanno rovinato la vita ed altri amori malinconici', "Daria Bignardi", 2022, "Mondadori")]
3
the following code which does not work:
JavaScript
1
3
1
df.loc[5::6] = l_row
2
df
3
Since I am at the very beginning I would be very willing to explore different solutions to explore how to add as follows the further list’s names (I thought also about a for loop which I do not how to set out)
Thanks
Advertisement
Answer
Check below code. It uses numpy.vstack to add list rows to existing data frame. Using your code from above for continuity, new code starts after the commented line Adding list rows to dataframe
JavaScript
1
21
21
1
import pandas as pd
2
import numpy as np
3
data = [("Il nome della rosa","Umberto Eco", 1980),
4
("L'amore che ti meriti","Daria Bignardi", 2014),
5
("Memorie dal sottsuolo", " Fëdor Dostoevskij", 1864),
6
("Oblomov", "Ivan Alexandrovich Goncharov ", 1859)]
7
8
index = range(1,5,1)
9
df = pd.DataFrame(data, columns = ["Books'Title", "Authors", "Publishing Year"], index = index)
10
11
pubhouses = ["Bompiani", "Mondadori", "Rizzoli", "Feltrinelli"]
12
df.insert(3, 'Publication Houses', pubhouses)
13
14
### Adding list rows to dataframe
15
16
l_row = [("Le avventure di Pinocchio", "Carlo Collodi", 1883, "Giunti"),
17
('Libri che mi hanno rovinato la vita ed altri amori malinconici', "Daria Bignardi", 2022, "Mondadori")]
18
19
20
pd.DataFrame(np.vstack([df.values, np.vstack(l_row)]), columns = df.columns)
21