重命名列和索引值一个表达式

Renaming column and index values one expression

我不确定为什么这段代码不起作用。如果我单独定义 tankwater.columns = tankwater.index = 表达式,列和索引将被重命名,但是当我尝试使用重命名函数组合它们时,我得到“列表对象不可调用。”

这可能很简单..提前致谢。

tankwater = tankwater.rename(index = ['Date 1', 'Date 2'], columns = ['Tank1','Tank 2', 'Tank 3', 'Total water'])

您可以使用字典而不是列表,其中键是旧值,项目是新值。像这样:

tankwater = tankwater.rename(index = {'oldindex1':'Date 1',
                                      'oldindex2':'Date 2'},
                             columns = {'oldcolumn1': 'Tank1',
                                        'oldcolumn2': 'Tank 2',
                                        'oldcolumn3': 'Tank 3',
                                        'oldcolumn4': 'Total water'})

为提供的示例添加了更易于使用的代码:

tankwater = tankwater.rename(index = dict(zip(tankwater.index, ['Date 1', 'Date 2'])),
                             columns = dict(zip(tankwater.columns, ['Tank1','Tank 2', 'Tank 3', 'Total water'])))

其中旧索引和旧列是要替换的名称。

您必须使用包含旧 column/index 标签和新标签的 dict,但您可以使用 dict + zip 动态地执行此操作:

tankwater = tankwater.rename(
    index=dict(zip(tankwater.index, ['Date 1', 'Date 2'])),
    columns=dict(zip(tankwater.columns, ['Tank1','Tank 2', 'Tank 3', 'Total water']))
)