使用特定项的值向pandas数据框添加新列?

6 python pandas

我有这个pandas数据帧:

d=pandas.DataFrame([{"a": 1}, {"a": 3, "b": 2}])
Run Code Online (Sandbox Code Playgroud)

并且我正在尝试根据数组中的数字索引,为某些行添加一个非空值的新列.例如,仅在第一行中添加新列"c" d:

# array of row indices
indx = np.array([0])
d.ix[indx]["c"] = "foo"
Run Code Online (Sandbox Code Playgroud)

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

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

我在这做错了什么?怎么做到呢?谢谢.

Jef*_*eff 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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)