【发布时间】:2022-01-20 23:19:23
【问题描述】:
我目前正在做一些大数据工作。我在 .CSV 中有一个问题,我需要将多行单单元文本块拆分为单个单元格。下表显示了所需的输出。目前,所有“成分”都在同一个单元格中,每种成分都在自己的新行中(Stack Overflow 不允许我在同一个单元格中创建新行)。
我需要编写一个脚本来将这个成分单元格拆分为下面的输出,使用单元格中的每个新行作为分隔符。我使用它的实际用例要复杂得多——超过 200 个“项目”,每个“项目”有 50-150 个“成分”。我目前正在 excel 中手动执行此操作,其中包含一系列文本到列和转置粘贴,但这大约需要 2-2.5 个完整的工作日。
Link 转数据
代码如下
| Item | Ingredients |
|---|---|
| Coffee | Coffee beans |
| Milk | |
| Sugar | |
| Water |
import pandas as pd
df = pd.read_csv(r'd:\Python\menu.csv', delimiter=';', header=None)
headers = ["Item", "Ingredients"]
df.columns = headers
df["Ingredients"]=df["Ingredients"].str.split("\n")
df = df.explode("Ingredients").reset_index(drop=True)
df.to_csv(r"D:\Python\output.csv")
【问题讨论】:
-
您能否以文本形式显示您的数据?这张桌子很难跟上。
-
已编辑 - 链接到有问题的 .csv 文件。我需要将 .csv 中的每个软件项拆分为单独的单元格,但不知道该怎么做。
标签: python pandas dataframe csv split