将逻辑应用于数据框时长度不匹配

如何将以下逻辑应用于熊猫中的数据框? 数据框有6列。

df.columns = df.columns [:: 2] .str.upper()

ValueError:长度不匹配:预期轴有6个元素,新值有3个元素

评论
  • 淡夏之
    淡夏之 回复

    将列表理解与枚举一起使用来处理取消配对列:

    df = pd.DataFrame({
            'a':list('abcdef'),
             'b':[4,5,4,5,5,4],
             'c':[7,8,9,4,2,3],
             'd':[1,3,5,7,1,0],
             'e':[5,3,6,9,2,4],
             'f':list('aaabbb')
    })
    
    print (df.columns[::2].str.upper())
    Index(['A', 'C', 'E'], dtype='object')
    
    df.columns = [x.upper() if i % 2 == 0 else x for i, x in enumerate(df.columns)]
    print (df)
       A  b  C  d  E  f
    0  a  4  7  1  5  a
    1  b  5  8  3  3  a
    2  c  4  9  5  6  a
    3  d  5  4  7  9  b
    4  e  5  2  1  2  b
    5  f  4  3  0  4  b