如何解决用特定字符分隔所有列名称,最后一部分作为Pandas中的新列名称
我有一个数据列,其列名称如下:
id,xxx>xxx>x,yy>y,zzzz>zzz>zz>z,...
我需要从右侧将第二个>
分开,并将第一个元素作为新的列名id,xxx>x,zz>z,...
。
我已经使用:'zzzz>zzz>zz>z'.rsplit('>',1)[-1]
来获取z
作为第三列的预期新列名称。
当我使用时:df.columns = df.columns.rsplit('>',1)[-1]
:
出局:
ValueError: Length mismatch: Expected axis has 13 elements,new values have 2 elements
我该怎么做呢?
解决方法
尝试做:
names = pd.Index(['xxx>xxx>x','yy>y','zzzz>zzz>zz>z'])
names = pd.Index([idx[-1] for idx in names.str.rsplit('>')])
print(names)
# Index(['x','y','z'],dtype='object')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。