来自dict的Pandas Dataframe具有空列表值

时间:2015-09-10 02:51:49

标签: python pandas

我试图在带有两个键的字典中读取,第一个带有字符串值,第二个带有字符串值列表。包含列表的值可以(通常是)为空。例如:

{'number': '50', 'box': []}

但是,当我尝试使用DataFrame.from_dict时,它会给我一个空的DataFrame。我注意到,如果'box'列表有多个元素,DataFrame.from_dict将为我提供一个包含多行的DataFrame,每个值对应一个框列表中的每个值。这似乎是一种交叉产品行为。有没有办法让我抑制这种行为,以便我可以从上面的例子中生成一行DataFrame,其中“number”列的值为“50”,列“box”的值为[]?< / p>

我通过Anaconda 2.3.0(64位Windows)使用Pandas 0.16.2和Python 2.7.10。

2 个答案:

答案 0 :(得分:1)

如果要使用单行创建DataFrame,可以提供包含单个字典的列表:

df = pd.DataFrame([{'number': '50', 'box': []}])

from_dict函数需要一个dict-of-lists,其中键表示列,每个值都是一个列表(因为DataFrame通常有多行),表示每行的值。以下使用from_dict生成等效结果:

df = pd.DataFrame.from_dict({'number': ['50'], 'box': [[]]})

答案 1 :(得分:0)

The documentation page并未显示此方法的许多选项。您可以传递nvarchar

而不是空列表
[np.NaN]

将返回一行数据帧。