通过使用元组索引的loc选择通过赋值填充空数据帧

时间:2018-05-10 16:36:17

标签: python pandas dataframe assign

为什么这样做?

a=pd.DataFrame()
a.loc[1,2]=0

>
     2
1  0.0

而且,这不起作用?

a=pd.DataFrame()
a.loc[(1,2),2]=0
>
KeyError: '[1 2] not in index'

后者是我想做的。我将通过使用元组指定索引的loc选择来分配值,来自没有值,0行,0列的数据帧。

1 个答案:

答案 0 :(得分:1)

我喜欢implicit memberwise initialiser因为感觉不像魔术。所有这些都是努力设置2级多指数。

带有空数组的

set_index

i = np.array([])
a = pd.DataFrame().set_index([i, i])
a.loc[(1, 2), 2] = 0

a

           2
1.0 2.0  0.0

稍微简洁

a = pd.DataFrame().set_index([np.array([])] * 2)
a.loc[(1, 2), 2] = 0

pd.concat

a = pd.concat([pd.DataFrame()] * 2, keys=[1, 2])
a.loc[(1, 2), 2] = 0

a

       2
1 2  0.0