为了进行分析,我获得了一个列名称,其中包含有关产品、市场和分销的具体信息。
数据集结构如下:
Date Product1|CBA|MKD Product1|CPA|MKD Product1|CBA|IHR Product2|CBA|IHR
2018-11 12 23 0 2
有很多独特的列组合。我想做的是获得以下结构:
Date Product Partner Market Quantity
2020-1 Product1 CBA MKD 11
2020-1 Product1 CPA MKD 22
2020-1 Product1 CBA IHR 0
2020-1 Product2 CBA IHR 1
所以,我想创建 3 个不同的列,并使用列名中的粘贴值填充它们。数量列显然包含旧连接列的值(我知道该怎么做),问题是获取前 3 列。
我曾尝试通过匹配字符串在 pandas 中做到这一点,但我真的被卡住了。非常感谢您的帮助,谢谢!
请您参考如下方法:
看起来你可以使用 pandas.melt
df_ = df.melt(id_vars = 'Date', value_name = 'Quantity')
df_[['Product', 'Partner','Market']] = df_.variable.str.split('|',
expand = True)\
.dropna(axis = 1)
df_.pop('variable')
df_
Out[67]:
Date Quantity Product Partner Market
0 2018-11 12 Product1 CBA MKD
1 2018-11 23 Product1 CPA MKD
2 2018-11 0 Product1 CBA IHR
3 2018-11 2 Product2 CBA IHR
