旋转后重命名列标题中的特殊字符

时间:2019-06-24 06:13:55

标签: python pandas

跟随该线程:Renaming columns in pandas。我要使用此行:

df.columns = df.columns.str.replace('$','')

问题是我使用df.pivot_table().to_records()旋转数据框并将其转换为记录,现在我的列标题具有以下语法: "('content2', ':13A::STAT')"

我只想保留13A::STAT,有什么想法吗?

是否有任何方法可以避免在重命名数据框时重命名?

数据框示例(旋转后):

occurance ('content2, ':13A::STAT') ('content2', '17B::ACTI')
1          4000                       Y
2            NaN                       73000

预期输出:

occurance 13A::STAT                  17B::ACTI
1          4000                       Y
2            NaN                       73000

1 个答案:

答案 0 :(得分:2)

如果在MultiIndex中省略[],则可以在列中省略['content2']

df1 = (df.pivot_table(index='occurance', 
                     columns="random", 
                     values='content2', 
                     aggfunc = lambda x: x.tolist() if len(list(x)) > 1 else x.iat[0])
        .to_records())