2

我有一个数据框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

4 回答 4

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
于 2021-05-01T23:27:02.343 回答
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
于 2021-05-01T23:33:30.410 回答
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
于 2021-05-01T23:26:08.280 回答
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)
于 2021-05-02T05:30:13.530 回答