将此numpy代码转换为pandas代码

时间:2016-04-27 00:16:43

标签: python numpy pandas dataframe

我有这段代码:

path = "C:\\Files"
dir = os.listdir(path)
diccio = {}
list = []
MValores = np.array([])
for i in dir:
    file = np.genfromtxt(os.path.join(path, i), delimiter=",")
    precioCierre = file[:, 0]
    list.append(precioCierre)
    nombre = i[1:7]
    diccio[nombre] = precioCierre

 MValores = np.column_stack(list)
 data = pd.DataFrame(diccio)

我有一个“.csv”文件列表。

-EURHKD_H1.csv
-EURJPY_H1.csv
-EURNZD_H1.csv
-EURTRY_H1.csv
-EURUSD_H1.csv

我使用此代码创建一个DataFrame。 有了这个,我这样做:

data = np.corrcoef(data, rowvar=0)
A = minimum_spanning_tree(data)
print(A)
print(type(data))

问题是当我得到最小化的生成树时,我得到了一个numpy类型

<class 'numpy.ndarray'>

我想得到一个DataFrame类型。 使用与numpy相同的代码我想将该代码转换为pandas代码以创建DataFrame。

1 个答案:

答案 0 :(得分:0)

DataFrame.corr是Pandas等同于np.corrcoef(..., rowvar=0)

import numpy as np
import pandas as pd

ar = np.random.randn(100, 3)
df = pd.DataFrame(ar)

assert np.allclose(np.corrcoef(ar, rowvar=0), df.corr().values)

请注意,要获得DataFrameminimum_spanning_tree也必须使用DataFrame个对象。

或者,您可以从DataFrame的结果中创建minumum_spanning_tree

DataFrame(minimum_spanning_tree(np.corrcoef(data, rowvar=0)),
          columns=data.columns, index=data.columns)