我有一个数据帧,其中有些,但是 不 所有列都以奇怪的前缀开头。例如 ot1/pr1/cp1/dkjsakhka , gt2/pr1/fl1/ct4/rmt12/dasljdals ,等等。我想通过删除最后一个斜杠之前的所有字符来重命名名称中有斜杠的所有列,例如。 ot1/pr1/cp1/dkjsakhka -> dkjsakhka , gt2/pr1/fl1/ct4/rmt12/dasljdals -> dasljdals ,同时保持其他列名不变。我该怎么做?
ot1/pr1/cp1/dkjsakhka
gt2/pr1/fl1/ct4/rmt12/dasljdals
dkjsakhka
dasljdals
您可以使用 str.rsplit :
str.rsplit
df.columns = df.columns.str.rsplit('/', n=1).str[-1]
输出:
# before >>> df.columns Index(['untouched column', 'ot1/pr1/cp1/dkjsakhka', 'gt2/pr1/fl1/ct4/rmt12/dasljdals'], dtype='object') # after >>> df.columns Index(['untouched column', 'dkjsakhka', 'dasljdals'], dtype='object')
编辑:
您也可以使用 rename 如果您愿意:
rename
df = df.rename(lambda x: x.rsplit('/', maxsplit=1)[-1], axis=1)