将多个Pandas DataFrame列设置为单个列中的值或同时设置多个标量值

时间:2015-08-31 22:29:58

标签: python pandas

我正在尝试将多个新列设置为一个列,并将多个新列分别设置为多个标量值。也做不到。除了单独设置每个之外,还有什么办法吗?

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]

3 个答案:

答案 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