我最近回答了一个问题,其中OP正在针对现有数据帧(link)查找具有多个不同值的多列。它相当简洁,但我认为不是很快。
最终我希望我可以做类似的事情:
# Existing dataframe
df = pd.DataFrame({'a':[1,2]})
df[['b','c']] = 0
这将导致:
a b c
1 0 0
2 0 0
但是会引发错误。
有没有一种超级简单的方法可以实现我所缺少的?还是我之前发布的答案是最快/最简单的方法?
注意
我知道可以通过循环或将标量分配给多个列来完成此操作,但是如果可能的话,我会尽量避免这样做。假设有50列或您不想写的任何数字:
df['b'], df['c'], ..., df['xyz'] = 0, 0, ..., 0
不可重复:
对此提出的“可能重复”问题显示了分配给每列的多个不同值。我只是问是否有一种非常简单的方法将单个标量值分配给多个新列。答案可能正确且非常简单地是“否”-但值得知道,因此我可以停止搜索。
答案 0 :(得分:0)
我想你想做
df['b'], df['c'] = 0, 0
答案 1 :(得分:0)
为什么不使用assign
df.assign(**dict.fromkeys(['b','c'],0))
Out[781]:
a b c
0 1 0 0
1 2 0 0
或通过dict
创建d=dict(zip([namelist],[valuelist]))