我有兩個資料框架 df1就像(AA是指數)
AA
a 1 2 3 4 5
b 2 2 3 4 5
而df2就像(AA是索引)
AA
a 10
b 20
輸出應該是(df1的所有值-df2的單個值,按行匹配索引列AA)
AA
a -9 -8 -7 -6 -5
b -18 -18 -17 -16 -15
我試著用很多方法做saame。能否請小組中的某個人幫助我解決這個問題?謝謝你
uj5u.com熱心網友回復:
你可以使用apply函式來解決。以下是示例代碼。
import pandas as pd
df1 = pd.DataFrame(
[
[1, 2, 3, 4, 5] 。
[2, 2, 3, 4, 5]
], index=['a'/span>, 'b'/span>]
)
df2 = pd.DataFrame(
[
[10] 。
[20] 。
], index=['a'/span>, 'b'/span>]
)
# 0是第一列索引是df2。
# x.name是df1的行索引名。
df3 = df1.apply(lambda x :x-df2.loc[x.name,0], axis=1)
df3
如果你在jupyter中運行,你將得到如下輸出。
如果沒有,你應該使用print(df3)來查看輸出。
uj5u.com熱心網友回復:
在NumPy中這很容易,因為它有廣播規則。因此,你可以在值陣列上進行計算(假設兩個輸入的DataFrame的索引值是相同的,就像你的例子一樣),并從結果中創建一個新的DataFrame:
import pandas as pd
index = pd.Index(['a'/span>, 'b'/span>], name='AA'/span>)
df1 = pd.DataFrame([[1, 2, 3, 4, 5],
[2, 2, 3, 4, 5]】。]
index=index)
df2 = pd.DataFrame([[10] 。
[20]]。
index=index)
df = pd.DataFrame(df1.values - df2.values,
index=index)
df
0 1 2 3 4
AA
a -9 -8 -7 -6 -5
b -18 -18 -17 -16 -15
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331574.html
標籤:

