我有以下df:
total:
A B C D
2 Quarter Endingds9ñs 31 25476.20 26321.00 24867.00
3 Quarter Ending dsa)d 31 26627.20 27904.00 25983.00
4 Year EndingdjAsd 34 106806.00 110738.00 103731.00
5 Year Ending (kañs 33 123813.00 131232.00 119091.00
如何删除最后5个字符以获取:
total:
A B C D
2 Quarter Ending 31 25476.20 26321.00 24867.00
3 Quarter Ending 31 26627.20 27904.00 25983.00
4 Year Ending 34 106806.00 110738.00 103731.00
5 Year Ending 33 123813.00 131232.00 119091.00
我真的不知道如何清理删除最后5个字符的索引。
答案 0 :(得分:2)
使用lambda函数删除最后5个符号,如:
total.index = total.index.map(lambda x: str(x)[:-5])
答案 1 :(得分:2)
如果你想清理5个字符的所有行,你可以使用它(可能是更好的功能)
def remove_last_chars(x):
return (x.replace(x[-5:], ''))
在此功能之后使用
df[df.columns[0:1]] = df[df.columns[0:1]].applymap(remove_last_chars)
答案 2 :(得分:1)
来源多指数DF
In [210]: df
Out[210]:
A B C D
2 Quarter Endingds9ñs 31 25476.2 26321.0 24867.0
3 Quarter Ending dsa)d 31 26627.2 27904.0 25983.0
4 Year EndingdjAsd 34 106806.0 110738.0 103731.0
5 Year Ending (kañs 33 123813.0 131232.0 119091.0
解决方案:
In [211]: df.index.set_levels(df.index.get_level_values(1).str[:-5], level=1, inplace=True)
In [212]: df
Out[212]:
A B C D
2 Quarter Ending 31 25476.2 26321.0 24867.0
3 Quarter Ending 31 26627.2 27904.0 25983.0
4 Year Ending 34 106806.0 110738.0 103731.0
5 Year Ending 33 123813.0 131232.0 119091.0