天天看點

python如何讀取資料框中的資料_python – 從文本檔案中讀取資料并将其配置設定給資料框的最快方法是什麼?...

在pandas中按元素查找元素是一項昂貴的操作,是以按索引進行對齊.我會将所有内容讀入數組,建立值的DataFrame,然後直接設定層次結構索引.如果你可以避免追加或查找通常會快得多.

下面是一個示例結果,假設您有一個資料集2-D數組,其中包含所有内容:

In [106]: dataset

Out[106]:

array([[1, 1, 0, 1],

[1, 1, 1, 2],

[1, 2, 1, 3],

[1, 2, 2, 4],

[2, 1, 0, 5],

[2, 1, 2, 6]])

In [107]: pd.DataFrame(dataset,columns=['A','B','C', 'data']).set_index(['A', 'B', 'C'])

...:

Out[107]:

data

A B C

1 1 0 1

1 2

2 1 3

2 4

2 1 0 5

2 6

In [108]: data_values = dataset[:, 3]

...: data_index = pd.MultiIndex.from_arrays( dataset[:,:3].T, names=list('ABC'))

...: pd.DataFrame(data_values, columns=['data'], index=data_index)

...:

Out[108]:

data

A B C

1 1 0 1

1 2

2 1 3

2 4

2 1 0 5

2 6

In [109]: %timeit pd.DataFrame(dataset,columns=['A','B','C', 'data']).set_index(['A', 'B', 'C'])

%%timeit

1000 loops, best of 3: 1.75 ms per loop

In [110]: %%timeit

...: data_values = dataset[:, 3]

...: data_index = pd.MultiIndex.from_arrays( dataset[:,:3].T, names=list('ABC'))

...: pd.DataFrame(data_values, columns=['data'], index=data_index)

...:

1000 loops, best of 3: 642 µs per loop