同时列分配
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
刚发现不能这样赋值:
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