在 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
在 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