首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas Python :如何从列表创建多列

Pandas Python :如何从列表创建多列
EN

Stack Overflow用户
提问于 2018-07-24 18:01:19
回答 6查看 23.2K关注 0票数 6

我有一个包含要创建的列的列表:

代码语言:javascript
复制
new_cols = ['new_1', 'new_2', 'new_3']

我想在数据帧中创建这些列,并用零填充它们:

代码语言:javascript
复制
df[new_cols] = 0

获取错误:

代码语言:javascript
复制
"['new_1', 'new_2', 'new_3'] not in index"

这是真的,但不幸的是我想创建它们...

编辑:这是这个问题的副本:Add multiple empty columns to pandas DataFrame但是我也保留了这个问题,因为这里被接受的答案是我正在寻找的简单解决方案,而那里不是他接受的答案。

编辑2:虽然公认的答案是最简单的,但下面发布了有趣的一行解决方案

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-07-24 18:03:26

您需要逐个添加列。

代码语言:javascript
复制
for col in new_cols:
    df[col] = 0

有关其他方法,请参阅here中的答案。

票数 6
EN

Stack Overflow用户

发布于 2018-07-24 18:04:39

按字典使用assign

代码语言:javascript
复制
df = pd.DataFrame({
    'A': ['a','a','a','a','b','b','b','c','d'],
    'B': list(range(9))
})
print (df)
0  a  0
1  a  1
2  a  2
3  a  3
4  b  4
5  b  5
6  b  6
7  c  7
8  d  8

new_cols = ['new_1', 'new_2', 'new_3']
df = df.assign(**dict.fromkeys(new_cols, 0))
print (df)
   A  B  new_1  new_2  new_3
0  a  0      0      0      0
1  a  1      0      0      0
2  a  2      0      0      0
3  a  3      0      0      0
4  b  4      0      0      0
5  b  5      0      0      0
6  b  6      0      0      0
7  c  7      0      0      0
8  d  8      0      0      0
票数 4
EN

Stack Overflow用户

发布于 2018-07-24 18:15:47

代码语言:javascript
复制
import pandas as pd

new_cols = ['new_1', 'new_2', 'new_3']
df = pd.DataFrame.from_records([(0, 0, 0)], columns=new_cols)

这就是你要找的吗?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51495800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档