Python - 将numpy.nd数组转换为数据帧

时间:2017-07-31 15:19:51

标签: python arrays numpy dictionary dataframe

我有20,000个类型为numpy.ndarray的数组,长度为4421,其值为“ts”。他们看起来像这样

array([0.33798802, 0.28742515, 0.3366694 , ..., 3.47222222, 28.90786312, 66.12929928])

他们的链接类“class_id”在此格式的另一个numpy.ndarray

array([[2],
       [3],
       [2],
       ..., 
       [2],
       [2],
       [2]])

如何将numpy.ndarray合并到一个包含20,000行和4422列的数据框中(其中最后一列是“class_id”中的类)。

输出应该是

  3.37988024e-01,   2.87425150e-01,   3.36669403e-01, 3.47222222e+00, ...,  2
  3.78449348e-01,   3.68259383e-01,   3.77523300e-01, 7.93650794e+00, ...,  3
  4.20835393e-01,   3.83079983e-01,   4.20191384e-01, 4.13223140e+00, ...,  2

1 个答案:

答案 0 :(得分:1)

假设您有一个numpy数组的列表/数组(ts),您只需使用np.concatenate

import numpy as np
import pandas as pd
ts = [np.array([1,1,1,1]), np.array([2,2,2,2]), np.array([3,3,3,3])]
class_id = np.array([[4], [5], [6]])
pd.DataFrame(np.concatenate([ts, class_id], axis=1))
#    0  1  2  3  4
# 0  1  1  1  1  4
# 1  2  2  2  2  5
# 2  3  3  3  3  6

如果您的ts是字典,并且您考虑到更复杂的“加入”或“连接”行为,则会更复杂。但至少应该让你开始。