同时列分配

Simultaneous column assignment

刚发现不能这样赋值:

df[['a','b','c']] = 'total'

df.loc[:, ['a','b','c']] = 'total

不过,我可以

df['a'] = 'total'
df['b'] = 'total'
df['c'] = 'total'

df['a'] = df['b'] = df['c'] = 'total'

我是不是漏掉了什么?

那些看起来像 dictionaries 所以请阅读官方文档。

您可以为单个键分配一些值。密钥必须是唯一且可散列的(这就是为什么字典工作如此之快并且基本上是 python 的 backbone 的原因)。列表是可变对象,不能散列。

看看 this or even this 个问题。

您可以使用ix同时设置多个列没有问题:

In [8]:

df = pd.DataFrame({'a':np.random.randn(5), 'b':np.random.randn(5), 'c':np.random.randn(5)})
df
Out[8]:
          a         b         c
0  0.623686  0.875752  1.027399
1 -0.806096  0.349891  0.290276
2  0.750623  0.704666 -1.401591
3 -0.594068 -1.148006  0.373021
4 -1.060019 -0.325563 -0.536769

In [9]:

df.ix[:,['a','b','c']] = 'total'
df
Out[9]:
       a      b      c
0  total  total  total
1  total  total  total
2  total  total  total
3  total  total  total
4  total  total  total