相关疑难解决方法(0)

如何将DataFrame索引/系列列作为数组或列表?

您知道如何将DataFrame的索引或列作为NumPy数组或python列表获取吗?

python pandas

251
推荐指数
5
解决办法
51万
查看次数

python pandas将数据帧展平为列表

我有一个这样的df:

import pandas
a=[['1/2/2014', 'a', '6', 'z1'], 
   ['1/2/2014', 'a', '3', 'z1'], 
   ['1/3/2014', 'c', '1', 'x3'],
   ]
df = pandas.DataFrame.from_records(a[1:],columns=a[0])
Run Code Online (Sandbox Code Playgroud)

我想要展平df所以它是一个连续的列表,如下所示:

['1/2/2014', 'a', '6', 'z1', '1/2/2014', 'a', '3', 'z1','1/3/2014', 'c', '1', 'x3']

我可以循环遍历行和extend列表,但这是一种更简单的方法吗?

python numpy list dataframe pandas

38
推荐指数
2
解决办法
5万
查看次数

从numpy或pandas邻接矩阵的igraph图

我有一个邻接矩阵存储为pandas.DataFrame:

node_names = ['A', 'B', 'C']
a = pd.DataFrame([[1,2,3],[3,1,1],[4,0,2]],
    index=node_names, columns=node_names)
a_numpy = a.as_matrix()
Run Code Online (Sandbox Code Playgroud)

我想igraph.Graph从邻接矩阵pandasnumpy邻接矩阵创建一个.在理想的世界中,节点将按预期命名.

这可能吗?该教程似乎对此问题保持沉默.

python numpy igraph pandas

20
推荐指数
2
解决办法
1万
查看次数

如何更改numpy recarray的某些列的dtype?

假设我有一个如下所示的重组:

import numpy as np

# example data from @unutbu's answer
recs = [('Bill', '31', 260.0), ('Fred', 15, '145.0')]
r = np.rec.fromrecords(recs, formats = 'S30,i2,f4', names = 'name, age, weight')

print(r)
# [('Bill', 31, 260.0) ('Fred', 15, 145.0)]
Run Code Online (Sandbox Code Playgroud)

假设我想将某些列转换为浮点数.我该怎么做呢?我应该换成一个ndarray,然后再回到recarray吗?

python numpy pandas

11
推荐指数
2
解决办法
1万
查看次数

从pandas.Series中选择本地最小值和最大值

有一个可以使用的scipy.signal.argrelextrema功能ndarray,但是当我尝试使用它时pandas.Series,它会返回一个错误.与熊猫一起使用它的正确方法是什么?

import numpy as np
import pandas as pd
from scipy.signal import argrelextrema
s = pd.Series(randn(10), range(10))
s
argrelextrema(s, np.greater)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-13-f3812e58bbe4> in <module>()
      4 s = pd.Series(randn(10), range(10))
      5 s
----> 6 argrelextrema(s, np.greater)

/usr/lib/python2.7/dist-packages/scipy/signal/_peak_finding.pyc in argrelextrema(data, comparator, axis, order, mode)
    222     """
    223     results = _boolrelextrema(data, comparator,
--> 224                               axis, order, mode)
    225     return np.where(results)
    226 

/usr/lib/python2.7/dist-packages/scipy/signal/_peak_finding.pyc in _boolrelextrema(data, comparator, axis, order, mode)
     60 
     61     results …
Run Code Online (Sandbox Code Playgroud)

python pandas

11
推荐指数
1
解决办法
5469
查看次数

将pandas数据帧转换为numpy数组 - 哪种方法更适合?

我需要将大型数据帧转换为numpy数组.仅保留数值和类型.我知道有很好的记录方法可以这样做.

那么,哪一个更喜欢?

df.values
df._as_matrix()
pd.to_numeric(df)
... others ...
Run Code Online (Sandbox Code Playgroud)

决策因素:

  • 效率

  • 安全地操作nan,np.nans和其他可能的意外值

  • 数值稳定

python numpy pandas

9
推荐指数
2
解决办法
2万
查看次数

Python:将来的版本中将删除方法.as_matrix。使用.values代替

我有以下代码

train_X, test_X, train_y, test_y = train_test_split(X.as_matrix(), y.as_matrix(), test_size=0.25)
Run Code Online (Sandbox Code Playgroud)

这里X是一个DataFrame,y是一个序列。当调用上面的函数时,我得到以下警告:

/opt/conda/lib/python3.6/site-packages/ipykernel_launcher.py:1:FutureWarning:方法.as_matrix将在以后的版本中删除。请改用.values。

“”“启动IPython内核的入口点。

然后,我尝试.values按照警告中的说明进行更改:

train_X, test_X, train_y, test_y = train_test_split(X.values(), y.values(), test_size=0.25)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

()中的TypeError追溯(最近一次通话最后一次)-> 1 train_X,test_X,train_y,test_y = train_test_split(X.values(),y.values(),test_size = 0.25)

TypeError:“ numpy.ndarray”对象不可调用

我该如何解决?

python scikit-learn

6
推荐指数
1
解决办法
8476
查看次数

将数据帧转换为二维数组

我有一个大小为 (140000,22) 维度的数据框。

我必须创建相同维度的二维数组才能将其传递到卷积神经网络中。

你能指导如何在这个数据帧上进行转换吗

python convolution dataframe conv-neural-network

6
推荐指数
1
解决办法
1万
查看次数

如何在 Pandas 数据框中获取列的实部和虚部?

import pandas as pd
Run Code Online (Sandbox Code Playgroud)

我有一个数据框:

df=pd.DataFrame({'cmplxnumbers':[1+1j,2-2j,3*(1+1j)]})
Run Code Online (Sandbox Code Playgroud)

我需要获取列中数字的虚部。

我这样做:

df.cmplxnumbers.apply(lambda number: number.imag)
Run Code Online (Sandbox Code Playgroud)

结果我得到:

0    1.0
1   -2.0
2    3.0
Name: cmplxnumbers, dtype: float64
Run Code Online (Sandbox Code Playgroud)

正如预期的那样。

有没有更快、更直接的方法,也许不涉及lambda函数?

python pandas

6
推荐指数
1
解决办法
238
查看次数

类应包含 y 中的所有有效标签

我想将数据集类别的权重矩阵传递给神经网络。

from sklearn.utils import class_weight
class_weights = class_weight.compute_class_weight('balanced',
                                                 np.unique(y_train),
                                                 y_train)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-93-9452aecf4030> in <module>
      2 class_weights = class_weight.compute_class_weight('balanced',
      3                                                  np.unique(y_train),
----> 4                                                  y_train)

~\AppData\Roaming\Python\Python36\site-packages\sklearn\utils\class_weight.py in compute_class_weight(class_weight, classes, y)
     39 
     40     if set(y) - set(classes):
---> 41         raise ValueError("classes should include all valid labels that can "
     42                          "be in y")
     43     if class_weight is None or len(class_weight) == 0:

ValueError: classes should include all valid labels that can be in y
Run Code Online (Sandbox Code Playgroud)

我不明白,这是我的y_train …

python python-3.x pandas scikit-learn

5
推荐指数
1
解决办法
6770
查看次数