【发布时间】:2018-08-14 18:37:39
【问题描述】:
编辑:正如下面@floydian 的评论中所解释的,问题是调用a = np.array(a, dtype=d) 创建了一个导致问题的双精度数组。
我知道这已经被问过很多次了,事实上我现在正在查看Creating a Pandas DataFrame with a numpy array containing multiple types 的答案。但是我在转换时似乎仍然有问题。我想念的东西一定很简单。希望有人能这么好心指出来。示例代码如下:
import numpy as np
import pandas as pd
a = np.array([[1, 2], [3, 4]])
d = [('x','float'), ('y','int')]
a = np.array(a, dtype=d)
# Try 1
df= pd.DataFrame(a)
# Result - ValueError: If using all scalar values, you must pass an index
# Try 2
i = [1,2]
df= pd.DataFrame(a, index=i)
# Result - Exception: Data must be 1-dimensional
【问题讨论】:
-
你的预期输出是什么?
-
具有指定列名和数据类型的DataFrame
-
我的意思是,是的,但它看起来像什么?第一列是int,第二列是float吗?
-
例如,您在寻找
pd.DataFrame(a.ravel())吗? -
哦,对,就是这样:第一列 int,第二列 float