为熊猫数据框选择列名称的一部分

时间:2019-10-21 05:56:19

标签: python pandas dataframe

如果我有200多个列,每个列都有长名称,并且我想删除名称的第一部分,该如何使用熊猫呢?

4 个答案:

答案 0 :(得分:0)

您可以遍历它们并省略前n个字符:

n = 3
li = []
for col in df.columns:
    col = col[n:]
    li.append(col)
df.columns = li

或者执行任何其他形式的字符串操作,我不确定“删除第一部分”是什么意思。

答案 1 :(得分:0)

str使用索引:

 N = 5
 df.columns = df.columns.str[N:]

答案 2 :(得分:0)

我只会使用rename

n=5
df.rename(columns = lambda x: x[n:])

在这里,lambda可以是任何东西,您也可以剥离更多的空格,实际上,您可以定义一个可调用对象并在此处使用,甚至不用lambda

答案 3 :(得分:0)

如果您只想删除一定数量的字符:

df.rename(columns=lambda col: col[n:])

如果要基于前缀有选择地删除:

# cols = 'a_A', 'a_B', 'b_A'
df.rename(columns=lambda col: col.split('a_')[1] if 'a_' in col else col)

您的规则有多复杂取决于您。

相关问题