Search code examples
pythonpandasdataframefaker

Generating data frames, but only getting 1 row


I wish to create a dataframe using faker library in Python, but I am able to get only a single row, dont understand whats the issue in the code. here's the same:

import pandas as pd

for dat in range(int(input())):
    dat = [[fake.email(),fake.phone_number(),fake.address(),fake.name(),fake.date(),fake.pyint(0,3)]]

v = pd.DataFrame(dat, columns=['Email','PhNo','Address','Name','Date','Children']) 

If I see columns in v by printing or head function, i can see only 1 row. I wish to see the entire no of rows based on the user input, say if its 3, then 3 rows should be there.


Solution

  • You are just updating the 'dat' value in every iteration. First create a list and then add data.

    import pandas as pd
    from faker import Faker
    fake = Faker()
    dat = []
    for i in range(int(input())):
    dat.append([fake.email(),fake.phone_number(),fake.address(),fake.name(),fake.date(),fake.pyint(0,3)])
    
    v= pd.DataFrame(dat, columns =['Email','PhNo','Address','Name','Date','Children'])
    print(v)