我有一个包含4列的数据框:CustomerID,产品代码,MonthNumber,购买的单位。我可以为同一个客户提供超过同月产品数量的产品。 我需要在图片中获得一个以MonthNumber为列的表格,并在单元格中获取由单位数+产品代码组成的字符串。 有什么建议? Example
答案 0 :(得分:0)
这是collections.defaultdict
的一种方法。
from collections import defaultdict
df = pd.DataFrame({'ECM ID': [3448, 3448, 3448, 3448],
'Mnt': [1, 6, 3, 5],
'Code': ['FUP', 'FUP', 'OSO', 'PRD'],
'N': [1, 2, 2, 1]})
df['Code'] = df['N'].astype(str) + '-' + df['Code']
d = defaultdict(lambda: defaultdict(str))
for idx, row in df.iterrows():
d[row['ECM ID']][row['Mnt']] = row['Code']
res = pd.DataFrame.from_dict(d, orient='index')
for col in (set(range(res.columns.min(), res.columns.max())) - set(res.columns)):
res[col] = ''
res = res.sort_index(axis=1)
# 1 2 3 4 5 6
# 3448 1-FUP 2-OSO 1-PRD 2-FUP