在 pandas 的列名中使用保留字

using reserved words in column names in pandas

在 pandas 中使用保留名称作为列名称不会提供错误或警告消息。代码只是运行而没有做任何事情。有没有办法打开某种警告以防止使用保留字作为列名?

MWE:

import pandas as pd

index_names = ['1','2','3']
col_names = ['median','A']

df = pd.DataFrame(index = index_names, columns = col_names)
df.fillna(0, inplace = True)
df.ix[1].A = 12
df.ix[1].median = 12
print df

输出:

 median    A
1    0    0
2    0    12
3    0    0

在 Python 中,与其他语言不同,确实没有变量的概念。 Python 具有指向对象的名称。

由于 Python 不是严格类型的(不像 Java 或 C++,例如),您可以灵活地为其他对象分配名称,甚至是指向函数的名称(因为函数是,像其他所有东西一样,一个对象)。

虽然这非常灵活(它允许通过覆盖函数名称轻松覆盖对象的功能),但这确实意味着 Python 不会在您尝试执行影响 built-in name。这称为 阴影

这只是拥有灵活类型系统的权衡之一,Python 程序员需要注意这一点。

这是一个典型的例子:

>>> type(id)
<type 'builtin_function_or_method'>
>>> id(4)
10677280
>>> id = 5
>>> type(id)
<type 'int'>
>>> id(5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable