发现个很诡异的问题
False in pd.Series([True,True])
returns True..........
但是
False in [True,True]
returns False
使用pandas的dataframe做一些基础的数据分布研究
df=pd.DataFrame.from_csv('test.csv')
df['column1'].plot(kind='density')#plot density
df['column1'].plot(kind='hist')#plot histgram
df['column1'].quantile(0.5)#这也是一种查看分布的方法,quantile划分区域使各个区域的分布概率相同
如何在python里声明常量
1.最简单的方法,但是不安全
CONSTANT_VAR_1 = 'this is a constant variable'#约定俗成的全部大写的变量就是常量了,所以编程的时候要注意别修改这种变量的值,可能带来麻烦
2.修改类里面的__setattr__函数,禁用类中成员变量的setter
如果类中有__setattr__函数,那么每次试图对类的成员变量进行修改将不直接修改类实例的字典(dictionary),而是通过调用这个__setattr__,如果这个函数什么都不做或者弹出一场,那么那个变量将无法被改变
class CONST(object):
FOO = 1234
def __setattr__(self, *_):
pass
CONST = CONST()
#----------
print CONST.FOO # 1234
CONST.FOO = 4321
CONST.BAR = 5678
print CONST.FOO # Still 1234!
print CONST.BAR # Oops AttributeError
3. 利用python类的特性
def MY_CONSTANT():
return "one"
4,使用namedtuple
>>> from collections import namedtuple
>>> Constants = namedtuple('Constants', ['pi', 'e'])
>>> constants = Constants(3.14, 2.718)
>>> constants.pi
3.14
>>> constants.pi = 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: can't set attribute