繁体   English   中英

有没有一种“更干净”的方式来编写这段代码?

[英]Is there a "cleaner" way to write this code?

所以只是第一次和 Pandas 混在一起——好奇,特别是我代码中的变量——继续迭代“df#”是否有意义,或者我应该继续重写“df”? 或者,如果我缺少一种更优雅的方式。

def func(csvfile):
    df = pd.read_csv(csvfile)
    df.columns = df.columns.str.replace(" ", "_")
    df2 = df.assign(column3=df.column3.str.split(",")).explode(
        "column3"
    )
    df3 = df2.assign(column2=df.column2.str.split("; ")).explode("column2")
    df3["column2"] = df3["column2"].str.replace(r"\(\d+\)", "", regex=True)
    df4 = df3[df3["column2"].str.contains("value2") == False]
    print(df4)

由于您无法提供任何可用的东西,因此在黑暗中拍摄完整的照片,但我敢打赌,这也是一样的:

def func(csvfile):
    df = pd.read_csv(csvfile)
    df.columns = df.columns.str.replace(" ", "_")
    df.column2 = df.column2.str.split("; ")
    df.column3 = df.column3.str.split(",")
    df = df.explode(['column2', 'column3']) # Or maybe explode them one at a time? I have no idea what you're doing.
    df.column2 = df.column2.str.replace(r"\(\d+\)", "", regex=True)
    df = df[~df.column2.str.contains("value2")]
    return df

df = func(csvfile)
print(df)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM