我有會計 DataFrame 并想檢查一些事實,但主要問題是他們沒有在同一個聯賽中“玩”。
DF 是這樣的:
A B C D E
x 1 1.5 1.1 0.8 1
y 100 120 90 115 102
z 1000 1100 1800 900 1000
我想檢查變數 ABCDE 之間的路徑,所以結果應該是這樣的:
A B C D E
x(%) 0 50 10 -20 0
y(%) 0 20 -10 15 2
z(%) 0 10 80 -10 0
要么
A B C D E
x(%) 100 150 110 80 0
y(%) 100 120 90 115 102
z(%) 100 110 180 90 100
我的想法是:
df2 = df
df2.iloc[0]= ( (df2.iloc[0] * 100 ) / df2["A"].iloc[0] ) -100
df2.iloc[1]= ( (df2.iloc[1] * 100 ) / df2["A"].iloc[1] ) -100
df2.iloc[2]= ( (df2.iloc[2] * 100 ) / df2["A"].iloc[2] ) -100
# (-100 is for first example)
但是,你知道這種“非手動”的方式嗎?
資料:
{'A': {'x': 1, 'y': 100, 'z': 1000},
'B': {'x': 1.5, 'y': 120, 'z': 1100},
'C': {'x': 1.1, 'y': 90, 'z': 1800},
'D': {'x': 0.8, 'y': 115, 'z': 900},
'E': {'x': 1, 'y': 102, 'z': 1000}}
uj5u.com熱心網友回復:
您可以將“A”轉換為 numpy 列向量并使用廣播:
df = (df / df["A"].to_numpy()[:, None] - 1) * 100
輸出:
A B C D E
x 0.0 50.0 10.0 -20.0 0.0
y 0.0 20.0 -10.0 15.0 2.0
z 0.0 10.0 80.0 -10.0 0.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427574.html
標籤:Python 熊猫 数据框 matplotlib
上一篇:將格式化字串轉換為熊貓資料框?
