6

我有这个熊猫数据框:

d=pandas.DataFrame([{"a": 1}, {"a": 3, "b": 2}])

并且我正在尝试根据数组中的数字索引向它添加一个仅针对某些行的非空值的新列。例如,仅将新列“c”添加到中的第一行d

# array of row indices
indx = np.array([0])
d.ix[indx]["c"] = "foo"

这应该将“foo”添加为第一行的列“c”值,并为所有其他行添加 NaN。但这似乎并没有改变数组:

d.ix[np.array([0])]["c"] = "foo"
In [18]: d
Out[18]: 
   a   b
0  1 NaN
1  3   2

我在这里做错了什么?如何做呢?谢谢。

4

1 回答 1

6
In [11]: df = pd.DataFrame([{"a": 1}, {"a": 3, "b": 2}])

In [12]: df['c'] = np.array(['foo',np.nan])

In [13]: df
Out[13]: 
   a   b    c
0  1 NaN  foo
1  3   2  nan

如果您要分配数值,则以下内容将起作用

In [16]: df['c'] = np.nan

In [17]: df.ix[0,'c'] = 1

In [18]: df
Out[18]: 
   a   b   c
0  1 NaN   1
1  3   2 NaN
于 2013-03-29T13:51:51.233 回答