回答編集履歴
1
コード修正
answer
CHANGED
@@ -21,20 +21,14 @@
|
|
21
21
|
# NaNなどのリスト以外は要素が1個のSeriesに
|
22
22
|
return pd.Series([info])
|
23
23
|
|
24
|
-
# apply用
|
25
|
-
def f_name(row):
|
26
|
-
return to_sr(row['info'], 'name')
|
27
|
-
|
28
|
-
# apply用
|
29
|
-
def f_price(row):
|
30
|
-
return to_sr(row['info'], 'price')
|
31
|
-
|
32
24
|
# Seriesに展開
|
25
|
+
series = {}
|
26
|
+
for key in ['name', 'price']:
|
27
|
+
f = lambda row: to_sr(row['info'], key)
|
33
|
-
|
28
|
+
series[key] = df.apply(f, axis=1).stack().reset_index(level=1, drop=True)
|
34
|
-
s_p = df.apply(f_price, axis=1).stack().reset_index(level=1, drop=True)
|
35
29
|
|
36
|
-
# 元dfに結合
|
30
|
+
# 各SeriesをDataFrameに結合し元dfに結合
|
37
|
-
dfs = pd.DataFrame(
|
31
|
+
dfs = pd.DataFrame(series)
|
38
32
|
df = df.drop('info', axis=1).join(dfs).reset_index(drop=True)
|
39
33
|
print(df)
|
40
34
|
# id menu_id name price
|