亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我無法正確地將一個(Pandas)數據幀附加到另一個數據幀

我無法正確地將一個(Pandas)數據幀附加到另一個數據幀

至尊寶的傳說 2023-07-11 14:31:09
我怎樣才能實現這一目標DoT Product?我無法將一個附加Pandas DataFrame到另一個。我不需要冗長的解決方案,而是需要一個簡單的Pandas代碼Numpy。產品價格: Apple Price = 3Cherry Price = 4Blueberry Price = 2預期輸出:                     Apple        Cherry     Blueberry       Mon                 13           8             6Tues                9            7             4Wed                 7            4             0Thurs               15           6             3Total Rev.($)       83           63            37我的代碼: prod_prices = np.array([3,4,2])prod_pricesprod_days = np.array([[13,9,7,15],                    [8,7,4,6],                    [6,4,0,3]]).Tprod_daysdf_week_sales = pd.DataFrame(prod_days,                 index=["Mon","Tues","Wed","Thurs"],                columns=["Apple","Cherry","Blueberry"])df_week_salesweekly_total = df_week_sales.dot(prod_prices)weekly_totaltype(weekly_total)weekly_total_nparray = np.array(weekly_total)type(weekly_total_nparray)weekly_total_nparraydf_weekly_total_nparray = pd.DataFrame(weekly_total_nparray.reshape(1,4))df_weekly_total_nparrayweekly_revenue_data = df_week_sales.append(df_weekly_total_nparray)weekly_revenue_data這給了我以下輸出:
查看完整描述

3 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

prices = {'Apple': 3, 'Cherry': 4, "Blueberry": 2}

df_week_sales = pd.DataFrame(prod_days,

                 index=["Mon","Tues","Wed","Thurs"],

                columns=["Apple","Cherry","Blueberry"])

df_week_sales


       Apple  Cherry  Blueberry

Mon       13       8          6

Tues       9       7          4

Wed        7       4          0

Thurs     15       6          3

轉置:


df = df_week_sales.transpose()


           Mon  Tues  Wed  Thurs

Apple       13     9    7     15

Cherry       8     7    4      6

Blueberry    6     4    0      3


df['Total Revenue'] = [np.sum(df_week_sales[x]*prices[x]) for x in df_week_sales.columns]



df


           Mon  Tues  Wed  Thurs  Total Revenue

Apple       13     9    7     15            132

Cherry       8     7    4      6            100

Blueberry    6     4    0      3             26


results = df.transpose()


               Apple  Cherry  Blueberry

Mon               13       8          6

Tues               9       7          4

Wed                7       4          0

Thurs             15       6          3

Total Revenue    132     100         26


prod_prices = np.array([3,4,2])

results['Revenue'] = df_week_sales.dot(prod_prices)


               Apple  Cherry  Blueberry  Revenue

Mon               13       8          6     83.0

Tues               9       7          4     63.0

Wed                7       4          0     37.0

Thurs             15       6          3     75.0

Total Revenue    132     100         26      NaN

了解您的預期輸出底部是 83、63、37,但這根本沒有意義。83 = 13*3 + 8*4 + 6*2, 63 = 9*3 + 4*2, 同樣對于37. 那么你的75. 數據不應該以該方向顯示。所以我會堅持這種方式,這樣對于表示數據來說更有意義。


查看完整回答
反對 回復 2023-07-11
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

你可以嘗試這樣的事情:


prod_prices = np.array([3,4,2])


prod_days = np.array([[13,9,7,15],

                    [8,7,4,6],

                    [6,4,0,3]]).T

df_week_sales = pd.DataFrame(prod_days,

                 index=["Mon","Tues","Wed","Thurs"],

                columns=["Apple","Cherry","Blueberry"])


# obtain the dot product

weekly_total = prod_days.dot(prod_prices)


# obtain the last row index of the data frame

jj = df_week_sales.shape[0]


# get the list to append to the data frame (need to be of the same column length)

df_week_sales.loc[jj] = weekly_total[:-1]


# rename the last index as desired

df_week_sales.rename(index={jj: 'Total Rev.($)'}, inplace=True)

df_week_sales


查看完整回答
反對 回復 2023-07-11
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

您可以通過兩行來實現此目的:


total_revenues = [df_week_sales[x].sum() for x in df_week_sales.columns]* prod_prices

output = pd.concat([df_week_sales, pd.DataFrame(total_revenues, index= df_week_sales.columns, columns = ['Total Revenue']).T])

輸出


|               |   Apple |   Cherry |   Blueberry |

|:--------------|--------:|---------:|------------:|

| Mon           |      13 |        8 |           6 |

| Tues          |       9 |        7 |           4 |

| Wed           |       7 |        4 |           0 |

| Thurs         |      15 |        6 |           3 |

| Total Revenue |     132 |      100 |          26 |


查看完整回答
反對 回復 2023-07-11
  • 3 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號