问题描述
我有一个数据列,其列名称如下:
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')