首页 > 解决方案 > 拆分多列

问题描述

我在熊猫中有一个数据框,我想在特定字符后删除所有内容。

到目前为止,我已经使用了 split 功能,它适用于 1 列。

df3['defending_marking'] = df3['defending_marking'].apply(lambda x: x.split('+')[0])

我想在所有带有 fx 的列上执行此操作。国际劳工组织

df3.iloc[:,:] = df3.iloc[:,:].apply(lambda x: x.split('+')[0])

我只是得到一个错误。

你能帮忙吗 ?

谢谢!

标签: pythonpandas

解决方案


在第一个中,您使用Series.applywhere xis 系列/列的每个字符串。split直接应用于每个字符串,所以它工作正常。在第二个中,您使用数据框的每一列(即系列)dataframe.apply在哪里。x现在,split在每个系列上都应用了,所以它失败了。

在 2n 一上,您需要str.split如下调用

df3 = df3.apply(lambda x: x.str.split('+').str[0])

当您split只选择第一部分时,添加选项n=1以在首次找到后停止拆分将使代码运行得更快

df3 = df3.apply(lambda x: x.str.split('+', n=1).str[0])

推荐阅读