pandas删除最后一列_从Dataframe-Pandas中所有列的列名中删除最后两个字符

本文展示了如何使用Pandas删除DataFrame列名的末尾字符,包括使用`str.rstrip`和正则表达式`str.extract`的方法。通过实例解释了这两种灵活的方式,适用于不同的列名格式。
摘要由CSDN通过智能技术生成

你可以这样用^{}In [214]: import functools as ft

In [215]: f = ft.partial(np.random.choice, *[5, 3])

In [225]: df = pd.DataFrame({'a': f(), 'b': f(), 'c': f(), 'a_1': f(), 'b_1': f(), 'c_1': f()})

In [226]: df

Out[226]:

a b c a_1 b_1 c_1

0 4 2 0 2 3 2

1 0 0 3 2 1 1

2 4 0 4 4 4 3

In [227]: df.columns = df.columns.str.rstrip('_1')

In [228]: df

Out[228]:

a b c a b c

0 4 2 0 2 3 2

1 0 0 3 2 1 1

2 4 0 4 4 4 3

但是,如果您需要更灵活的方法(尽管可能会慢一点),可以使用^{},借助regex的强大功能,它将允许您选择要保留列名的哪一部分In [216]: df = pd.DataFrame({f'{c}_{i}': f() for i in range(3) for c in 'abc'})

In [217]: df

Out[217]:

a_0 b_0 c_0 a_1 b_1 c_1 a_2 b_2 c_2

0 0 1 0 2 2 4 0 0 3

1 0 0 3 1 4 2 4 3 2

2 2 0 1 0 0 2 2 2 1

In [223]: df.columns = df.columns.str.extract(r'(.*)_\d+')[0]

In [224]: df

Out[224]:

0 a b c a b c a b c

0 1 1 0 0 0 2 1 1 2

1 1 0 1 0 1 2 0 4 1

2 1 3 1 3 4 2 0 1 1

使用df.columns.str的想法来自this答案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值