Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将值转换为_matrix(),以保持列顺序_Python_Pandas - Fatal编程技术网

Python 将值转换为_matrix(),以保持列顺序

Python 将值转换为_matrix(),以保持列顺序,python,pandas,Python,Pandas,我目前使用.as_matrix()函数来确保numpy数组保持正确的列顺序;然而,这是由于折旧。使用建议的.values函数对as_矩阵函数进行折旧后,如何确保保持列顺序?还是有其他方法 非常感谢 使用as_矩阵的示例 In: prices.pct_change()[1:].as_matrix(stocks) Out: array([-0.00283364, 0.0012285 , 0.0014199 , 0.00142983, -0.0053432 ]) 有价值的例子 In: pri

我目前使用.as_matrix()函数来确保numpy数组保持正确的列顺序;然而,这是由于折旧。使用建议的.values函数对as_矩阵函数进行折旧后,如何确保保持列顺序?还是有其他方法

非常感谢

使用as_矩阵的示例

In: prices.pct_change()[1:].as_matrix(stocks)

Out: array([-0.00283364,  0.0012285 ,  0.0014199 ,  0.00142983, -0.0053432 ])
有价值的例子

In: prices.pct_change()[1:].values

Out: array([ 0.00142983,  0.0014199 , -0.00283364, -0.0053432 ,  0.0012285 ])

正如您所指出的,
.As_matrix()
已被弃用。(请参见下面与
.values
的比较)

无论如何,似乎您可以先使用
.loc
按各自的顺序获取列:

import pandas as pd
import numpy as np
np.random.seed(444)

prices = pd.DataFrame(np.random.randn(200, 4), columns=list('abcd'))
columns = list('cad')
prices.pct_change().dropna().loc[:, columns].values
以下是
.as_matrix()
.values
的对比。您只会注意到一点细微的区别:

def as_matrix(self, columns=None):
    warnings.warn("Method .as_matrix will be removed in a future version. "
                      "Use .values instead.", FutureWarning, stacklevel=2)
    self._consolidate_inplace()
    return self._data.as_array(transpose=self._AXIS_REVERSED,
                               items=columns)

@property
def values(self):
    self._consolidate_inplace()
    return self._data.as_array(transpose=self._AXIS_REVERSED)
因此,如果您真的想要,您可以在没有警告的情况下将
重新创建为\u matrix()
。(但我更喜欢第一种方法;它是公共API;它不会让您自己处理内部
Block
类型。)


访问
会如何影响订单?能否链接此信息的来源?由于
agg()
go:/只需使用
.values
,无需担心,我已经落后于版本了
chg = prices.pct_change().dropna()
val = chg._data.as_array(transpose=chg._AXIS_REVERSED, items=columns)
assert np.allclose(val, prices.pct_change().dropna().loc[:, columns].values)