Skip to content

Improve speed and memory usage with simple integer indexes #2420

Closed
@wesm

Description

@wesm

http://stackoverflow.com/questions/13692418/does-pandas-cache-values-on-ix-call

I believe this will be mostly remedied when the equivalent of the range-index branch is merged.

import pandas as pd
import numpy as np
import datetime as dt
import matplotlib.cbook as mc
import inspect

print 'pandas', pd.__version__

li_list = []
for i in range(50):
    li_list.append(pd.DataFrame(data=np.random.randn(50, 17000)))

def first_element():
    a = 0
    for i in range(50):
        b = li_list[0] #Only access first element
        for j in b.columns:
            a += b.ix[i, j]

def all_in_list():
    a = 0
    for i in range(50):
        b = li_list[i] #Access all in list
        for j in b.columns:
            a += b.ix[i, j]
            print(inspect.getabsfile(b.__class__))
            break

if __name__ == '__main__':
    # first_element()
    all_in_list()
    print(mc.report_memory())

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions