質問編集履歴

1

追加で試したコードです。エラーがでてしまいました。

2021/09/28 00:16

投稿

Shin_go
Shin_go

スコア19

test CHANGED
File without changes
test CHANGED
@@ -83,3 +83,75 @@
83
83
 
84
84
 
85
85
  ![イメージ説明](bb1107fc2c281bdbc86eb26cc9690501.png)
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+ ```python
94
+
95
+ #医療費データをユーザーごとに集計
96
+
97
+ person_cost1 = pd.pivot_table( cost1,index="person_number",values='cost',columns='nendo',aggfunc='sum').reset_index().fillna(0)
98
+
99
+ person_cost2 = pd.pivot_table( cost2,index="person_number",values='cost',columns='nendo',aggfunc='sum').reset_index().fillna(0)
100
+
101
+ person_cost3 = pd.pivot_table( cost3,index="person_number",values='cost',columns='nendo',aggfunc='sum').reset_index().fillna(0)
102
+
103
+ person_cost4 = pd.pivot_table( cost4,index="person_number",values='cost',columns='nendo',aggfunc='sum').reset_index().fillna(0)
104
+
105
+ person_cost5 = pd.pivot_table( cost5,index="person_number",values='cost',columns='nendo',aggfunc='sum').reset_index().fillna(0)
106
+
107
+
108
+
109
+ person_cost=pd.merge(person_cost1,person_cost2,left_on='person_number',right_on='person_number',how='inner')
110
+
111
+ person_cost=pd.merge(person_cost,person_cost3,left_on='person_number',right_on='person_number',how='inner')
112
+
113
+ person_cost=pd.merge(person_cost,person_cost4,left_on='person_number',right_on='person_number',how='inner')
114
+
115
+ person_cost=pd.merge(person_cost,person_cost5,left_on='person_number',right_on='person_number',how='inner')
116
+
117
+
118
+
119
+
120
+
121
+ person_cost.loc['Column_total']= person_cost.sum(numeric_only=True, axis=0)
122
+
123
+ # person_cost.loc[:,'total'] = person_cost.sum(numeric_only=True, axis=1)
124
+
125
+
126
+
127
+ #個人ごとの合計を算出・列を追加
128
+
129
+ person_cost["total"]=cost1["cost"]+cost2["cost"]+cost3["cost"]+cost4["cost"]+cost5["cost"]
130
+
131
+
132
+
133
+ #個人ごとの平均を算出・列を追加
134
+
135
+ person_cost["mean"]=person_cost["total"]/5
136
+
137
+
138
+
139
+ #個人ごとの前年増減率を算出・列を追加
140
+
141
+ person_cost["YonY_1"]=round((cost2["cost"]-cost1["cost"])/cost1["cost"]*100,1)
142
+
143
+ person_cost["YonY_2"]=round((cost3["cost"]-cost2["cost"])/cost2["cost"]*100,1)
144
+
145
+ person_cost["YonY_3"]=round((cost4["cost"]-cost3["cost"])/cost3["cost"]*100,1)
146
+
147
+ person_cost["YonY_4"]=round((cost5["cost"]-cost4["cost"])/cost4["cost"]*100,1)
148
+
149
+
150
+
151
+ person_cost[[1, 2, 3, 4, 5, 'total']] = person_cost[[1, 2, 3, 4, 5, 'total']].astype(np.int64)
152
+
153
+
154
+
155
+ person_cost
156
+
157
+ ```