假设我有一个一维数组:
import numpy as np
my_array = np.arange(0,10)
my_array.shape
(10, )
在 Pandas 中,我想使用这个数组创建一个只有一行和 10
列的 DataFrame。例如:
import pandas as pd
import random, string
# Random list of characters to be used as columns
cols = [random.choice(string.ascii_uppercase) for x in range(10)]
但是当我尝试时:
pd.DataFrame(my_array, columns = cols)
我得到:
ValueError: Shape of passed values is (1,10), indices imply (10,10)
我认为这是因为 Pandas 需要一个二维数组,而我有一个(平面)一维数组。有没有办法将我的一维数组扩展为二维数组,或者让 Panda 在创建数据帧时使用一维数组?
注意:我使用的是最新的稳定版 Pandas (0.11.0)
最佳答案
您的值数组的长度为 9(值从 1 到 9),而您的 cols
列表的长度为 10。
我不明白你的错误信息,根据你的代码,我得到:
ValueError: Shape of passed values is (1, 9), indices imply (10, 9)
这是有道理的。
尝试:
my_array = np.arange(10).reshape(1,10)
cols = [random.choice(string.ascii_uppercase) for x in range(10)]
pd.DataFrame(my_array, columns=cols)
结果是:
F H L N M X B R S N
0 0 1 2 3 4 5 6 7 8 9
关于python - 在numpy中将一维数组膨胀为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16282127/