我當前的資料被組織成兩個相同形狀的資料框。然后,我想在計算后將所有列匯總為一列。
我正在使用:
df = df1_kwh.multiply(df2np).sum(axis=1)
但是,當我使用 df.shape 時,我得到的形狀為“(347,)”,表示沒有列,然后我無法使用 df.insert 將其他列添加到“sum”值列。
我該怎么做才能使 df.sum 的輸出能夠被其他函式操作?
uj5u.com熱心網友回復:
如果您想要一個 DataFrame,您可以使用以下方法從 Series 轉換to_frame:
df = df1_kwh.multiply(df2np).sum(axis=1).to_frame()
默認情況下,列名是0,要更改它(例如更改為“sum”),請使用:
df = df1_kwh.multiply(df2np).sum(axis=1).to_frame('sum')
例子:
np.random.seed(0)
df1_kwh = pd.DataFrame(np.random.random(size=(5,5)))
df2np = 2
df = df1_kwh.multiply(df2np).sum(axis=1).to_frame('sum')
df.insert(0, 'new', 'x')
輸出:
new sum
0 x 5.670608
1 x 6.644717
2 x 5.770594
3 x 5.176273
4 x 6.276120
uj5u.com熱心網友回復:
這是一種使用您的結果創建 DataFramesum()然后用于insert()添加列的方法:
import pandas as pd
df1_kwh = pd.DataFrame({'a':range(5), 'b':range(5, 10)})
df2np = pd.DataFrame({'c':range(10, 15), 'b':range(15, 20)})
df = df1_kwh.multiply(df2np).sum(axis=1).to_frame()
print(df)
df.insert(loc=0, column='e', value='test')
print(df)
輸入:
a b
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
c d
0 10 15
1 11 16
2 12 17
3 13 18
4 14 19
輸出:
C:\Users\willi\Downloads\python>python stackoverflow_answers.py
0
0 75.0
1 96.0
2 119.0
3 144.0
4 171.0
e 0
0 test 75.0
1 test 96.0
2 test 119.0
3 test 144.0
4 test 171.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/493399.html
上一篇:遞回回傳父級但不回傳子級
下一篇:按索引和列值過濾Pandas
