Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Machine Learning by (19k points)

I'm starting from the pandas DataFrame docs here: http://pandas.pydata.org/pandas-docs/stable/dsintro.html

I'd like to iteratively fill the DataFrame with values in a time series kind of calculation. So basically, I'd like to initialize the DataFrame with columns A, B and timestamp rows, all 0 or all NaN.

I'd then add initial values and go over this data calculating the new row from the row before, say row[A][t] = row[A][t-1]+1 or so.

I'm currently using the code below, but I feel it's kind of ugly and there must be a way to do this with a DataFrame directly or just a better way in general. Note: I'm using Python 2.7.

import datetime as dt

import pandas as pd

import scipy as s

if __name__ == '__main__':

    base = dt.datetime.today().date()

    dates = [ base - dt.timedelta(days=x) for x in range(0,10) ]

    dates.sort()

    valdict = {}

    symbols = ['A','B', 'C']

    for symb in symbols:

        valdict[symb] = pd.Series( s.zeros( len(dates)), dates )

    for thedate in dates:

        if thedate > dates[0]:

            for symb in valdict:

                valdict[symb][thedate] = 1+valdict[symb][thedate - dt.timedelta(days=1)]

    print valdict

1 Answer

0 votes
by (33.1k points)

You can simply use pandas.DataFrame() method:

To create an empty dataframe:

import pandas as pd 

Newdf = pd.DataFrame()

The above will create an empty dataframe of the Newdf variable.

To write the previous dataframe into a new one:

NewDF = NewDF.append(OldDF)

NewDF.head()

OldDF is the name of the previous dataframe, which you want to append in a new dataframe.

In the above code .head() method will print the first five rows of the dataframe.

Hope this answer helps.

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...