拆分多列

2024-09-27 21:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pandas中有一个数据帧,我想删除特定字符后的所有内容

到目前为止,我已经使用了split函数,它在1列上工作

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

我想用fx在所有列上这样做。iloc公司

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

我只是犯了个错误

你能帮忙吗

谢谢你


Tags: 数据lambda函数内容pandas错误公司字符
2条回答

在第一个例子中,使用Series.apply,其中x是序列/列的每个字符串split被直接应用到每个字符串上,所以它工作得很好。在第二种情况下,使用dataframe.apply,其中x是数据帧的每一列(即序列)。现在,split应用于每个系列,所以失败了

在2none上,需要调用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])

你不需要通过[:,:]。应该在apply函数中使用axis=1将每一列逐个传递给lambda函数,然后重新分配回同一数据帧

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

相关问题 更多 >

    热门问题