回答編集履歴

3

回答を質問に合わせて修正

2018/03/12 03:28

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -73,3 +73,85 @@
73
73
  #2018-01-03 850 625
74
74
 
75
75
  ```
76
+
77
+
78
+
79
+ ---
80
+
81
+
82
+
83
+ **【修正版】**
84
+
85
+ > dictがリストに入っている場合
86
+
87
+ ```Python
88
+
89
+ import pandas as pd
90
+
91
+
92
+
93
+ df = pd.DataFrame({
94
+
95
+ 'Date':['2018/1/1','2018/1/2','2018/1/2','2018/1/3','2018/1/3'],
96
+
97
+ 'Status':[[{'Quantitiy':100, 'Price':1000}],
98
+
99
+ [{'Quantitiy':10, 'Price':5000}],
100
+
101
+ [{'Quantitiy':50, 'Price':1500}],
102
+
103
+ [{'Quantitiy':500, 'Price':100}],
104
+
105
+ [{'Quantitiy':125, 'Price':750}]]
106
+
107
+ })
108
+
109
+ df['Date'] = pd.to_datetime(df['Date'])
110
+
111
+ print(df)
112
+
113
+ # Date Status
114
+
115
+ #0 2018-01-01 {'Quantitiy': 100, 'Price': 1000}
116
+
117
+ #1 2018-01-02 {'Quantitiy': 10, 'Price': 5000}
118
+
119
+ #2 2018-01-02 {'Quantitiy': 50, 'Price': 1500}
120
+
121
+ #3 2018-01-03 {'Quantitiy': 500, 'Price': 100}
122
+
123
+ #4 2018-01-03 {'Quantitiy': 125, 'Price': 750}
124
+
125
+
126
+
127
+ df = pd.concat([df, df['Status'].apply(lambda d: pd.Series(d[0]))], axis=1).drop('Status', axis=1)
128
+
129
+ print(df)
130
+
131
+ # Date Price Quantitiy
132
+
133
+ #0 2018-01-01 1000 100
134
+
135
+ #1 2018-01-02 5000 10
136
+
137
+ #2 2018-01-02 1500 50
138
+
139
+ #3 2018-01-03 100 500
140
+
141
+ #4 2018-01-03 750 125
142
+
143
+
144
+
145
+ print(df.groupby('Date').sum())
146
+
147
+ # Price Quantitiy
148
+
149
+ #Date
150
+
151
+ #2018-01-01 1000 100
152
+
153
+ #2018-01-02 6500 60
154
+
155
+ #2018-01-03 850 625
156
+
157
+ ```

2

回答の一部を追加

2018/03/12 03:28

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -58,4 +58,18 @@
58
58
 
59
59
  #4 2018-01-03 750 125
60
60
 
61
+
62
+
63
+ print(df.groupby('Date').sum())
64
+
65
+ # Price Quantitiy
66
+
67
+ #Date
68
+
69
+ #2018-01-01 1000 100
70
+
71
+ #2018-01-02 6500 60
72
+
73
+ #2018-01-03 850 625
74
+
61
75
  ```

1

タイポ修正

2018/03/11 23:49

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -1,4 +1,4 @@
1
- 辞書データをColumnに展開してから処理するというのは駄目でしょうか?
1
+ 辞書データをColumnに展開してから処理するというのは駄目でしょうか?
2
2
 
3
3
 
4
4