[英]How to join unique strings from a column in dataframe based on another column
[英]Extract strings from DataFrame, join with previous column and merge with another DataFrame
我有兩個 csv 文件/Pandas Dataframes 組織起來像
Sheet ID Issue Obs
P012CR0409F1-1, P012CR0409F1-1-04, P012CR0409F1-1-05 crop again,
P012CR0427F1-1, Missing image 08 ,
P012V006-0018 , Missing images 01, 04, 05, 09 ,
和
Image ID Value1 Value2
P012CR0427F1-1-01 0.85839 0.76264
我需要最終得到一個 dataframe ,它本質上是第二個,還有兩個額外的 boolean 列: crop again
and missing
。
因此,對於第一個新列,計划是再次使用(?P<crop>[\w-]+)(?=(?:\s*,\s*[\w-]+)*\s+crop again)
以隔離圖像代碼,並為第二個(??Missing? images?) (?P<missing>\d{2})
隔離缺失的索引。
我正在努力解決如何 1. 將缺失的索引與它們的工作表 ID 連接起來以獲取缺失的圖像代碼和 2. 在最后一個 dataframe 中加入所有這些。 我在 2D Pandas 方面並不可怕,但extractall
function 返回一個 MultiIndex object,我無法真正理解如何操作。
非常感謝,
所以我最終做的是:
df = pd.read_csv("./First.csv", names=["id", "issue", "obs"])
df["crop"] = df["issue"].str.findall(
r"(?P<crop>[\w-]+)(?=(?:\s*,\s*[\w-]+)*\s+crop again)"
)
df["missing"] = df["issue"].str.findall(
r"(?!Missing images?) (?P<missing>\d{2})"
)
df = df.explode("crop")
df = df.explode("missing")
df["missing"] = df["id"] + "-" + df["missing"]
crop = df["crop"].dropna()
missing = df["missing"].dropna()
從那里我將兩者都用作系列,但可以直接在 Second.csv 中檢查它們並添加 boolean 列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.