注:この質問は実際にはSplit pandas dataframe string entry to separate rowsの複製ですが、ここで提供される回答はより一般的で有益であるため、すべての点を考慮して、スレッドを削除しないことを選択しました
次の形式の「データセット」があります。
id | value | ...
--------|-------|------
a | 156 | ...
b,c | 457 | ...
e,g,f,h | 346 | ...
... | ... | ...
そして、各IDのすべての値を複製して正規化したいと思います:
id | value | ...
--------|-------|------
a | 156 | ...
b | 457 | ...
c | 457 | ...
e | 346 | ...
g | 346 | ...
f | 346 | ...
h | 346 | ...
... | ... | ...
私がやっていることは、グループごとに作成するpandas
使用の分割適用結合原則を適用することです.groupby
tuple
(groupby value, pd.DataFrame())
行のIDを単純にカウントするグループ化する列を作成しました:
df['count_ids'] = df['id'].str.split(',').apply(lambda x: len(x))
id | value | count_ids
--------|-------|------
a | 156 | 1
b,c | 457 | 2
e,g,f,h | 346 | 4
... | ... | ...
行を複製する方法は次のとおりです。
pd.DataFrame().append([group]*count_ids)
私はゆっくりと進歩していますが、それは本当に複雑です。この種の問題について共有できるベスト プラクティスや推奨事項をいただければ幸いです。