根据管道符号拆分 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)
我有一个 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)