Groupby没有数值Pandas

时间:2018-03-10 00:58:15

标签: python pandas

我有一个包含4列的数据框:CustomerID,产品代码,MonthNumber,购买的单位。我可以为同一个客户提供超过同月产品数量的产品。 我需要在图片中获得一个以MonthNumber为列的表格,并在单元格中获取由单位数+产品代码组成的字符串。 有什么建议? Example

1 个答案:

答案 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
相关问题