我正在尝试将多个新列设置为一个列,并将多个新列分别设置为多个标量值。也做不到。除了单独设置每个之外,还有什么办法吗?
df=pd.DataFrame(columns=['A','B'],data=np.arange(6).reshape(3,2))
df.loc[:,['C','D']]=df['A']
df.loc[:,['C','D']]=[0,1]
答案 0 :(得分:1)
for c in ['C', 'D']:
df[c] = d['A']
df['C'] = 0
df['D'] = 1
答案 1 :(得分:0)
也许这就是你要找的东西。
df=pd.DataFrame(columns=['A','B'],data=np.arange(6).reshape(3,2))
df['C'], df['D'] = df['A'], df['A']
df['E'], df['F'] = 0, 1
# Result
A B C D E F
0 0 1 0 0 0 1
1 2 3 2 2 0 1
2 4 5 4 4 0 1
答案 2 :(得分:0)
assign
方法将一步创建多个新列。您可以传递带有列和值的dict()
来返回新的DataFrame,并将新的列追加到末尾。
使用示例:
df = df.assign(**{'C': df['A'], 'D': df['A']})
和
df = df.assign(**{'C': 0, 'D':1})
有关其他详细信息,请参见以下答案:https://stackoverflow.com/a/46587717/4843561