簡體   English   中英

根據現有數據框中的其他列創建一個新列

[英]Create a new column based on other columns in existing dataframes

我有以下兩個數據框:

test=pd.DataFrame({"x":[1,2,3,4,5],"y":[6,7,8,9,0]})
test2=pd.DataFrame({"z":[1],"p":[6]})

分別導致:

    x   y
0   1   6
1   2   7
2   3   8
3   4   9
4   5   0

    z   p
0   1   6

在表測試中創建等於以下內容的最佳方法是什么: test["s"]=test["x"]*test2["z"]+test2["p"]

當我嘗試上面的表達式時,我得到以下輸出:

    x    y      s
0   1    6     7.0
1   2    7     NaN
2   3    8     NaN
3   4    9     NaN
4   5    0     NaN

但是我想要所有行的結果。 我已經研究了有關apply方法或所謂的矢量化操作的內容,但我真的不知道如何解決該問題。

預期產量:

    x    y      s
0   1    6     7.0
1   2    7     8.0
2   3    8     9.0
3   4    9     10.0
4   5    0     11.0

提前致謝

這是我的解決方案,我采納了Trenton_M的建議。

test=pd.DataFrame({"x":[1,2,3,4,5],"y":[6,7,8,9,0]})
test2=pd.DataFrame({"z":[1],"p":[6]})

乘法過程:

test["s"] = test['x'] * test2.z.loc[0] + test2.p.loc[0]
test

輸出:

    x   y   s
0   1   6   7
1   2   7   8
2   3   8   9
3   4   9   10
4   5   0   11

使用標量乘法 ,如下所示:

test['s'] = test.x * test2.z[0] + test2.p[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM