在 Python Pandas DataFrame 中设置索引名称的最佳方法

Sam*_*Cie 4 python indexing set dataframe pandas

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

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)
Run Code Online (Sandbox Code Playgroud)

一个比另一个更受欢迎吗?有没有第三种方法可以用 1 行代码而不是 2 行代码来完成?

jez*_*ael 7

我认为这是最好的使用方法链接

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

另一种说法DataFrame.rename_axis

df = pd.DataFrame(columns=['col1',  'col2']).rename_axis('index name')
Run Code Online (Sandbox Code Playgroud)

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

df = pd.DataFrame(columns=['index name', 'col1',  'col2']).set_index('index name')
Run Code Online (Sandbox Code Playgroud)

inplace不推荐 -链接

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

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