Skip to main content

The purpose of the pyeviews package is to make it easier for EViews and Python to talk to each other, so Python programmers can use the econometric engine of EViews directly from Python. This package uses COM to transfer data between Python and EViews. (For more information on COM and EViews, take a look at our whitepaper on the subject.)

Here’s a simple example going from Python to EViews. We’re going to use the popular Chow-Lin interpolation routine in EViews using data created in Python. Chow-Lin interpolation is a regression-based technique to transform low-frequency data (in our example, annual) into higher-frequency data (in our example, quarterly). It has the ability to use a higher-frequency series as a pattern for the interpolated series to follow. The quarterly interpolated series is chosen to match the annual benchmark series in one of four ways: first (the first quarter value of the interpolated series matches the annual series), last (same, but for the fourth quarter value), sum (the sum of the first through fourth quarters matches the annual series), and average (the average of the first through fourth quarters matches the annual series).

We’re going to create two series in Python using the time series functionality of the pandas package, transfer it to EViews, perform Chow-Lin interpolation on our series, and bring it back into Python. The data are taken from [BLO2001] in an example originally meant for Denton interpolation.

  • If you don’t have Python, we recommend the Anaconda distribution, which will include most of the packages we’ll need. Alternatively, head over to the Python Package Index and get the pyeviews module by opening a Windows command line program (e.g., Command Prompt or PowerShell) and using the command:

$ pip install pyeviews

or by downloading the package, navigating to your installation directory, and using the command

$ python setup.py install
  • Create two time series using pandas. We’ll call the annual series “benchmark” and the quarterly series “indicator”:

>>> import numpy as np
>>> import pandas as pa
>>> dtsa = pa.date_range('1998', periods = 3, freq = 'A')
>>> benchmark = pa.Series([4000.,4161.4,np.nan], index=dtsa, name = 'benchmark')
>>> dtsq = pa.date_range('1998q1', periods = 12, freq = 'Q')
>>> indicator = pa.Series([98.2, 100.8, 102.2, 100.8, 99., 101.6, 102.7, 101.5, 100.5, 103., 103.5, 101.5], index = dtsq, name = 'indicator')
  • Load the pyeviews package and create a custom COM application object so we can customize our settings. Set showwindow (which displays the EViews window) to True. Then call the PutPythonAsWF function to create pages for the benchmark and indicator series:

>>> import pyeviews as evp
>>> eviewsapp = evp.GetEViewsApp(instance='new', showwindow=True)
>>> evp.PutPythonAsWF(benchmark, app=eviewsapp)
>>> evp.PutPythonAsWF(indicator, app=eviewsapp, newwf=False)
  • Name the pages of the workfile:

>>> evp.Run('pageselect Untitled', app=eviewsapp)
>>> evp.Run('pagerename Untitled annual', app=eviewsapp)
>>> evp.Run('pageselect Untitled1', app=eviewsapp)
>>> evp.Run('pagerename Untitled1 quarterly', app=eviewsapp)
  • Use the EViews copy command to copy the benchmark series in the annual page to the quarterly page, using the indicator series in the quarterly page as the high-frequency indicator and matching the sum of the benchmarked series for each year (four quarters) with the matching annual value of the benchmark series:

>>> evp.Run('copy(rho=.7, c=chowlins, overwrite) annual\\benchmark quarterly\\benchmarked @indicator indicator', app=eviewsapp)
  • Bring the new series back into Python:

>>> benchmarked = evp.GetWFAsPython(app=eviewsapp, pagename= 'quarterly', namefilter= 'benchmarked ')
>>> print benchmarked
            BENCHMARKED
1998-03-01   867.421428
1998-06-01  1017.292857
1998-09-01  1097.992857
1998-12-01  1017.292857
1999-03-01   913.535714
1999-06-01  1063.407143
1999-09-01  1126.814286
1999-12-01  1057.642857
2000-03-01  1000.000000
2000-06-01  1144.107143
2000-09-01  1172.928571
2000-12-01  1057.642857
  • Release the memory allocated to the COM process (this does not happen automatically in interactive mode):

>>> eviewsapp.Hide()
>>> eviewsapp = None
>>> evp.Cleanup()

Note that if you choose not to create a custom COM application object (the GetEViewsApp function), you won’t need to use the first two lines in the last step. You only need to call Cleanup(). If you create a custom object but choose not to show it, you won’t need to use the first line (the Hide() function).

References

[BLO2001]

Bloem, A.M, Dippelsman, R.J. and Maehle, N.O. 2001 Quarterly National Accounts Manual–Concepts, Data Sources, and Compilation. IMF. http://www.imf.org/external/pubs/ft/qna/2000/Textbook/index.htm

Requirements

  • EViews, of course

  • comtypes, numpy, and pandas

Metadata

Release files for pyeviews 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyeviews 0.1.2
File Size Uploaded
pyeviews-0.1.2.zip 25.8 kB Details

Release files / pyeviews-0.1.2.zip

Download URL pyeviews-0.1.2.zip
Size 25.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5c3f8608b96ce8069d10ac0f88b520735b4c378df147477d0506476f0a5fa00e
BLAKE2b-256 checksum
How to use checksums
d3cddabeb376750bf3fc0e03b589b45beb33a5f6b35a3871b3bb7407da4edf94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.10

1 release file

0.1.9

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

This release

0.1.2 This release

1 release file

0.1.1

1 release file

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page