我有这个pandas数据帧:
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
我在这里做错了什么?怎么做到呢?感谢。
答案 0 :(得分: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