質問編集履歴
1
追加で試したコードです。エラーがでてしまいました。
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
|
+
```
|