发现个很诡异的问题
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__,如果这个函数什么都不做或者弹出一场,那么那个变量将无法被改变
classCONST(object):FOO =1234def__setattr__(self,*_):passCONST =CONST()#----------printCONST.FOO # 1234CONST.FOO =4321CONST.BAR =5678printCONST.FOO # Still 1234!printCONST.BAR # Oops AttributeError
3. 利用python类的特性
defMY_CONSTANT():return"one"
4,使用namedtuple
>>>fromcollections importnamedtuple
>>>Constants=namedtuple('Constants',['pi','e'])>>>constants =Constants(3.14,2.718)>>>constants.pi
3.14>>>constants.pi =3Traceback(most recent call last):File"",line 1,inAttributeError:can't set attribute