我无法正确地将一个(Pandas)数据帧附加到另一个数据帧

我怎样才能实现这一目标DoT Product?我无法将一个附加Pandas DataFrame到另一个。我不需要冗长的解决方案,而是需要一个简单的Pandas代码Numpy。


产品价格: 


Apple Price = 3

Cherry Price = 4

Blueberry Price = 2

预期输出: 


                    Apple        Cherry     Blueberry       

Mon                 13           8             6

Tues                9            7             4

Wed                 7            4             0

Thurs               15           6             3

Total Rev.($)       83           63            37

我的代码: 


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

prod_prices


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

                    [8,7,4,6],

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

prod_days


df_week_sales = pd.DataFrame(prod_days,

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

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

df_week_sales


weekly_total = df_week_sales.dot(prod_prices)

weekly_total


type(weekly_total)


weekly_total_nparray = np.array(weekly_total)


type(weekly_total_nparray)


weekly_total_nparray


df_weekly_total_nparray = pd.DataFrame(weekly_total_nparray.reshape(1,4))


df_weekly_total_nparray

weekly_revenue_data = df_week_sales.append(df_weekly_total_nparray)


weekly_revenue_data

这给了我以下输出:

http://img4.mukewang.com/64acf75700019e4f12860695.jpg

至尊宝的传说
浏览 127回答 3
3回答

料青山看我应如是

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  BlueberryMon       13       8          6Tues       9       7          4Wed        7       4          0Thurs     15       6          3转置:df = df_week_sales.transpose()           Mon  Tues  Wed  ThursApple       13     9    7     15Cherry       8     7    4      6Blueberry    6     4    0      3df['Total Revenue'] = [np.sum(df_week_sales[x]*prices[x]) for x in df_week_sales.columns]df           Mon  Tues  Wed  Thurs  Total RevenueApple       13     9    7     15            132Cherry       8     7    4      6            100Blueberry    6     4    0      3             26results = df.transpose()               Apple  Cherry  BlueberryMon               13       8          6Tues               9       7          4Wed                7       4          0Thurs             15       6          3Total Revenue    132     100         26prod_prices = np.array([3,4,2])results['Revenue'] = df_week_sales.dot(prod_prices)               Apple  Cherry  Blueberry  RevenueMon               13       8          6     83.0Tues               9       7          4     63.0Wed                7       4          0     37.0Thurs             15       6          3     75.0Total Revenue    132     100         26      NaN了解您的预期输出底部是 83、63、37,但这根本没有意义。83 = 13*3 + 8*4 + 6*2, 63 = 9*3 + 4*2, 同样对于37. 那么你的75. 数据不应该以该方向显示。所以我会坚持这种方式,这样对于表示数据来说更有意义。

素胚勾勒不出你

你可以尝试这样的事情:prod_prices = np.array([3,4,2])prod_days = np.array([[13,9,7,15],                    [8,7,4,6],                    [6,4,0,3]]).Tdf_week_sales = pd.DataFrame(prod_days,                 index=["Mon","Tues","Wed","Thurs"],                columns=["Apple","Cherry","Blueberry"])# obtain the dot productweekly_total = prod_days.dot(prod_prices)# obtain the last row index of the data framejj = 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 desireddf_week_sales.rename(index={jj: 'Total Rev.($)'}, inplace=True)df_week_sales

翻阅古今

您可以通过两行来实现此目的:total_revenues = [df_week_sales[x].sum() for x in df_week_sales.columns]* prod_pricesoutput = 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 |
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python