我有一个包含要创建的列的列表:
new_cols = ['new_1', 'new_2', 'new_3']我想在数据帧中创建这些列,并用零填充它们:
df[new_cols] = 0获取错误:
"['new_1', 'new_2', 'new_3'] not in index"这是真的,但不幸的是我想创建它们...
编辑:这是这个问题的副本:Add multiple empty columns to pandas DataFrame但是我也保留了这个问题,因为这里被接受的答案是我正在寻找的简单解决方案,而那里不是他接受的答案。
编辑2:虽然公认的答案是最简单的,但下面发布了有趣的一行解决方案
发布于 2018-07-24 18:03:26
发布于 2018-07-24 18:04:39
按字典使用assign:
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发布于 2018-07-24 18:15:47
import pandas as pd
new_cols = ['new_1', 'new_2', 'new_3']
df = pd.DataFrame.from_records([(0, 0, 0)], columns=new_cols)这就是你要找的吗?
https://stackoverflow.com/questions/51495800
复制相似问题