根据管道符号拆分 pandas 数据框列

Split pandas dataframe column based on the pipeline symbol

我有一个 pandas 数据框,其中有一个名为 Category 的列。我想根据管道符号“||”将此类别列拆分为 4 个单独的列,分别命名为 A、B、C、D。 12=]

示例输入:df['Category'] = 操作||修改||银行||银行流程

示例输出:

df['A'] = 操作

df['B'] = 修改

df['C'] = 银行

df['D'] = 银行流程

我查找了很多关于堆栈溢出的答案,但 none 对我有用。我试过以下代码:

df[['A', 'B', 'C', 'D']] = df['Category'].str.split("||", expand = True)

但它给出错误:发生异常:ValueError 列的长度必须与键

相同

推测您的 Pandas 版本是 运行 str.split 并且启用了正则表达式模式。在这种情况下,您需要转义管道:

df[["A", "B", "C", "D"]] = df["Category"].str.split(r'\|\|', expand=True)

或者,您也可以明确关闭正则表达式模式:

df[["A", "B", "C", "D"]] = df["Category"].str.split("||", expand=True, regex=False)

管道在正则表达式中有特殊含义,您需要转义它或通过在 str.split:

中设置 regex=False 来声明您没有使用正则表达式
df[["A", "B", "C", "D"]] = df["Category"].str.split('||', regex=False,
                                                    expand=True)