2024-03-29 07:44:06 发布
网友
我有一个数据框,有4列:CustomerID,product code,MonthNumber,Units purchased。我可以为同一个客户提供多于同一个月号码的产品。 我需要像图中那样获得一个以MonthNumber为列的表,并在单元格中获得一个由#of units+Product code组成的字符串。 有什么建议吗? Example
这是通过collections.defaultdict的一种方法
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
这是通过
collections.defaultdict
的一种方法相关问题 更多 >
编程相关推荐