【发布时间】:2022-06-22 16:47:45
【问题描述】:
我需要一些帮助来连接来自 DF 的一些字符串。
我有以下“原始”df:
df = pd.DataFrame({'Material': [1,1,1,2,2,2,3,3,3,3],
'BOM': ['A','B',np.nan,'A',np.nan,'C','A','A','B','C']})
| Material | BOM | |
|---|---|---|
| 0 | 1 | A |
| 1 | 1 | B |
| 2 | 1 | NaN |
| 3 | 2 | A |
| 4 | 2 | NaN |
| 5 | 2 | C |
| 6 | 3 | A |
| 7 | 3 | A |
| 8 | 3 | B |
| 9 | 3 | C |
预期结果是:
| Material | BOM |
|---|---|
| 1 | A, B |
| 2 | A, C |
| 3 | A, B, C |
我是 Python 新手,正在考虑将 Loop 和 Dict 混合使用,但我绝对认为一定有更好的方法。
棘手的一点是,我认为我需要按材料分组并检查“BOM”列以获取不同的选项(不同于 NaN)然后某种“,”。加入它们。
我尝试了以下方法:
df.groupby('Material')['BOM'].apply(', '.join)
并得到错误:“TypeError: sequence item 2: expected str instance, float found”
如果有人能帮助我,我将不胜感激
【问题讨论】: