【问题标题】:Best way to set index name in Python Pandas DataFrame在 Python Pandas DataFrame 中设置索引名称的最佳方法
【发布时间】:2020-02-29 18:24:11
【问题描述】:

在 Pandas 中创建空白数据框时,似乎至少有两种方法可以设置索引名称。

df = pd.DataFrame(columns=['col1',  'col2'])
df.index.name = 'index name'



df = pd.DataFrame(columns=['index name', 'col1',  'col2'])
df.set_index('index name', inplace=True)

一个比另一个更受欢迎吗?是否有第三种方法可以在 1 行代码而不是 2 行中做到这一点?

【问题讨论】:

  • df.rename_axis('index name', axis='index', inplace=True)
  • df.index = df.index.rename('index name')df.index.rename('index name', inplace=True)

标签: python pandas dataframe indexing set


【解决方案1】:

我认为这里最好使用method chaining

pandas 核心团队现在鼓励使用方法链。这是一种编程风格,您可以将多个方法调用链接到一个语句中。这允许您将中间结果从一种方法传递到下一种方法,而不是使用变量存储中间结果。

另一个解决方案DataFrame.rename_axis:

df = pd.DataFrame(columns=['col1',  'col2']).rename_axis('index name')

或更改您的第二个解决方案:

df = pd.DataFrame(columns=['index name', 'col1',  'col2']).set_index('index name')

不推荐inplace - link:

pandas 核心团队不鼓励使用 inplace 参数,最终它将被弃用(这意味着“计划从库中移除”)。原因如下:

inplace 在方法链中不起作用。
inplace 的使用通常不会阻止创建副本,这与名称所暗示的相反。
删除 inplace 选项将降低 pandas 代码库的复杂性。

【讨论】:

    猜你喜欢
    • 2016-10-24
    • 2018-05-18
    • 2018-06-05
    • 2018-09-05
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    相关资源
    最近更新 更多