我有一列名为配料的列,其中有多个项目。我如何将它们分别分成不同的列?
Eg: Type Ingredients
Hybrid 18.7% THC
1.62% Total Terpenes
0.61% Myrcene
Indica 0.61% Myrcene
0.35% Ocimene
0.18% Limonene
我想将成分列拆分为THC,Mycrene,Ocimene,Limonene等多个列,每个列都描述其百分比
答案 0 :(得分:2)
我认为您需要Series.str.split
和\s+
来按百分比分配一个或多个空格,分配给新列,然后向前填充type
列的缺失值,最后用{{3 }}:
df[['per','ingr']] = df['Ingredients'].str.split('%\s+', expand=True)
df['Type'] = df['Type'].replace('', np.nan).ffill()
df = df.pivot('Type','ingr','per').astype(float)
print (df)
ingr Limonene Myrcene Ocimene THC Total Terpenes
Type
Hybrid NaN 0.61 NaN 18.7 1.62
Indica 0.18 0.61 0.35 NaN NaN