假设一个数据帧由两列a={1,2,3}B={'abcdd','efghh','ijkl'}。对于A=2,我想将B列中的相应条目改为“efh”。(即提取第一个、第二个和最后一个单词,不删除第三个单词,不相同)。在
使用航向位置[df['colA']=2,'colB']。结构分裂().str[x],其中x=0,1和-1,但我很难有效地将这三个单词连接回一个字符串中。我能想到的最有效的方法如下。有没有更好的方法来实现我的目标?谢谢。在
y = lambda x : df.loc[df['colA']==2,'colB'].str.split().str[x]
df.loc[df['colA']=2,'colB'] = y(0) + ' ' + y(1) + ' ' + y(-1)
预期和实际结果:
^{pr2}$
您已经非常接近解决方案了,唯一的问题是
str[x]
返回一个包装在Series对象中的值。可以通过从序列中提取值来解决此问题,如下所示:您也可以通过使用apply函数来实现相同的目的
^{pr2}$这个怎么样:
那么
^{pr2}$df
就是通缉犯:相关问题 更多 >
编程相关推荐