您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Pandas:更改具有多级列的数据框中的特定列名称

5b51 2022/1/14 8:23:22 python 字数 3103 阅读 610 来源 www.jb51.cc/python

我想找到更改多级数据框中特定列的更改名称的方法. 有了这些数据: data = { ('A', '1', 'I'): [1, 2, 3, 4, 5], ('B', '2', 'II'): [1, 2, 3, 4, 5], ('C', '3', 'I'): [1, 2, 3, 4, 5], ('D', '4', 'II'): [1, 2, 3, 4, 5],

概述

有了这些数据:

data = {
    ('A','1','I'): [1,2,3,4,5],('B','2','II'): [1,('C','3',('D','4',('E','5','III'): [1,}

dataDF = pd.DataFrame(data)

代码无效:

dataDF.rename(columns = {('A','I'):('Z','100','Z')},inplace=True)

结果:

A   B   C   D   E
    1   2   3   4   5
    I   II  I   II  III
0   1   1   1   1   1
1   2   2   2   2   2
2   3   3   3   3   3
3   4   4   4   4   4
4   5   5   5   5   5

而且也不是:

dataDF.columns.values[0] = ('Z','Z')

结果:

A   B   C   D   E
    1   2   3   4   5
    I   II  I   II  III
0   1   1   1   1   1
1   2   2   2   2   2
2   3   3   3   3   3
3   4   4   4   4   4
4   5   5   5   5   5

但结合以上代码工作!!!

dataDF.columns.values[0] = ('Z','Z')
dataDF.rename(columns = {('A',inplace=True)
dataDF

结果:

Z   B   C   D   E
    100 2   3   4   5
    Z   II  I   II  III
0   1   1   1   1   1
1   2   2   2   2   2
2   3   3   3   3   3
3   4   4   4   4   4
4   5   5   5   5   5

这是熊猫的错误??吗?

pandas不希望pd.Indexs变得可变.如果我们尝试自己更改索引的第一个元素,我们可以看到这一点

dataDF.columns[0] = ('Z','Z')

06001

但是pandas无法控制你做什么值属性.

dataDF.columns.values[0] = ('Z','Z')

我们看到dataDF.columns看起来相同,但dataDF.columns.values清楚地反映了这一变化.不幸的是,df.columns.values不是显示在数据帧上的内容.

另一方面,这看起来确实应该有效.事实上,我觉得不对.

dataDF.rename(columns={('A','I'): ('Z',inplace=True)

我相信这只在更改了值之后才起作用的原因是重命名是通过查看值来强制重建列.由于我们更改了值,现在可以使用了.这是非常kludgy,我不建议建立一个依赖于此的过程.

我的推荐

>确定要更改的列名称的位置
>将列的名称指定给值数组
>从头开始构建新列,明确

from_col = ('A','I')
to_col = ('Z','Z')
colloc = dataDF.columns.get_loc(from_col)
cvals = dataDF.columns.values
cvals[colloc] = to_col

dataDF.columns = pd.MultiIndex.from_tuples(cvals.tolist())

dataDF

[![enter code here][1]][1]

总结

以上是编程之家为你收集整理的python – Pandas:更改具有多级列的数据框中的特定列名称全部内容,希望文章能够帮你解决python – Pandas:更改具有多级列的数据框中的特定列名称所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶