【发布时间】:2021-03-30 04:39:48
【问题描述】:
import pandas as pd
import numpy as np
df = pd.read_csv ('input.csv')
df.head()
df['visibility'] = np.where(df['sku']== df['parent-sku'], 'visible', 'search') #add column if same sku in parent-sku
combo4 = df.groupby(['parent-sku'])['sku'].apply(', '.join)
data = print(combo4)
df['grouped items'] = np.where(df['sku']== df['parent-sku'], data, '') #format(combo2)
df.to_csv('output.csv', index=False)
所以,我的目标是检查所有 CSV 文件, 在“PARENT-SKU”列中检查行中的重复值,(例如,4 项相同); 从旁边的 SKU 列中获取值(每个都是唯一的); 用逗号合并并附加到新的 GROUPED 列 - 仅适用于第一次重复 PARENT-SKU 或仅具有“可见”的那个
我无法理解它。它出什么问题了? 分组项的当前输出为 NaN。
数据示例:
| Parent SKU | SKU | VISIBLE |
|---|---|---|
| A | A1 | VISIBLE |
| A | A2 | SEARCH |
| A | A3 | SEARCH |
| B | B1 | VISIBLE |
| B | B2 | SEARCH |
我得到了非常糟糕的结果,当尝试使用函数时,我很想看到输出:
| Parent SKU | SKU | VISIBLE | GROUPED ITEMS |
|---|---|---|---|
| A | A1 | VISIBLE | A1,A2,A3 |
| A | A2 | SEARCH | |
| A | A3 | SEARCH | |
| B | B1 | VISIBLE | B1,B2 |
| B | B2 | SEARCH |
非常感谢!给你一杯啤酒!
【问题讨论】:
-
根据您的评论,尝试我更新的答案。我在我的手机上,所以还没有测试。