熊猫按行添加另一列

时间:2021-05-01 23:20:27

标签: python pandas numpy

我有一个数据框 df

A   B   C
0.1 0.3 0.5
0.2 0.4 0.6
0.3 0.5 0.7
0.4 0.6 0.8
0.5 0.7 0.9

对于每一行,我想为数据框 df1 中的每个元素添加一个值

X  
0.1
0.2
0.3
0.4
0.5

最后的结果是

 A   B   C
 0.2 0.4 0.6
 0.4 0.6 0.8
 0.6 0.8 1.0
 0.8 1.0 1.2
 1.0 1.2 1.4

我曾尝试使用 df_new =df.sum(df1, axis=0),但出现以下错误 TypeError: stat_func() got multiple values for argument 'axis' 我也愿意接受 numpy 解决方案

4 个答案:

答案 0 :(得分:3)

您可以使用np.add

df = np.add(df, df1.to_numpy())
print(df)

打印:

     A    B    C
0  0.2  0.4  0.6
1  0.4  0.6  0.8
2  0.6  0.8  1.0
3  0.8  1.0  1.2
4  1.0  1.2  1.4

答案 1 :(得分:3)

import pandas as pd

df = pd.DataFrame([[0.1,0.3, 0.5],
                   [0.2, 0.4, 0.6],
                   [0.3, 0.5, 0.7],
                   [0.4, 0.6, 0.8],
                   [0.5, 0.7, 0.9]], 
                  columns=['A', 'B', 'C'])

df1 = [0.1, 0.2, 0.3, 0.4, 0.5]

# In one Pandas instruction
df = df.add(pd.Series(df1), axis=0)

结果:

     A    B    C
0  0.2  0.4  0.6
1  0.4  0.6  0.8
2  0.6  0.8  1.0
3  0.8  1.0  1.2
4  1.0  1.2  1.4

答案 2 :(得分:1)

concat.stack()尝试.sum()

df_new = pd.concat([df1.stack(),df2.stack()],1).bfill().sum(axis=1).unstack(1).drop('X',1)

     A    B    C
0  0.2  0.4  0.6
1  0.4  0.6  0.8
2  0.6  0.8  1.0
3  0.8  1.0  1.2
4  1.0  1.2  1.4

答案 3 :(得分:0)

df= pd.DataFrame([[0.1,0.3, 0.5],
                   [0.2, 0.4, 0.6],
                   [0.3, 0.5, 0.7],
                   [0.4, 0.6, 0.8],
                   [0.5, 0.7, 0.9]], 
                  columns=['A', 'B', 'C'])

df["X"]=[0.1, 0.2, 0.3, 0.4, 0.5]

columns_to_add= df.columns[:-1]

for col in columns_to_add:
    df[col]+=df['X'] #this is where addition or any other operation can be performed

df.drop('X',axis=0)