通过分隔符解析 pandas DataFrame
Parsing a pandas DataFrame by delimiter
我有以下问题:
我有一个 pandas DataFrame 如下:
df
A B
GRA x - kuaiau;;a; y - kaj;jsuik;;;ou; yy -ll'jkusj;;l;
GRB xx -iusiksu;;a; z - kuayatik;;;ou;
GRC tt - hay;hayh;
GRD NA
GRE
所以我想要的是,每当 B 列不为空时,根据分隔符“-”拆分 B 列字符串,并将这些组放在 2 列中,如图所示。
预期输出:
df_final
A C D
GRA x y yy kuaiau;;a; kaj;jsuik;;;ou; ll'jkusj;;l;
GRB xx z iusiksu;;a; kuayatik;;;ou;
GRC tt hay;hayh;
GRD NA NA
GRE
我可以根据分隔符“-”拆分列。但是,由于我有不同数量的“-”,所以当列为 NULL、空白或 NA 时,我无法正确连接它们以获得所需的输出,也根本无法使其工作。
任何帮助都一定会有所帮助。
我们可以在这里使用 str.replace
和适当的正则表达式模式:
df["C"] = df["B"].str.replace(r'\s*-\s*\S+;+\S+;+\s*', ' ').str.strip()
df["D"] = df["B"].str.replace(r'\w+\s*-\s*', '')
我有以下问题:
我有一个 pandas DataFrame 如下:
df
A B
GRA x - kuaiau;;a; y - kaj;jsuik;;;ou; yy -ll'jkusj;;l;
GRB xx -iusiksu;;a; z - kuayatik;;;ou;
GRC tt - hay;hayh;
GRD NA
GRE
所以我想要的是,每当 B 列不为空时,根据分隔符“-”拆分 B 列字符串,并将这些组放在 2 列中,如图所示。
预期输出:
df_final
A C D
GRA x y yy kuaiau;;a; kaj;jsuik;;;ou; ll'jkusj;;l;
GRB xx z iusiksu;;a; kuayatik;;;ou;
GRC tt hay;hayh;
GRD NA NA
GRE
我可以根据分隔符“-”拆分列。但是,由于我有不同数量的“-”,所以当列为 NULL、空白或 NA 时,我无法正确连接它们以获得所需的输出,也根本无法使其工作。
任何帮助都一定会有所帮助。
我们可以在这里使用 str.replace
和适当的正则表达式模式:
df["C"] = df["B"].str.replace(r'\s*-\s*\S+;+\S+;+\s*', ' ').str.strip()
df["D"] = df["B"].str.replace(r'\w+\s*-\s*', '')