python 随笔
1. python 逻辑判断
A,B 是两个判断表达式
if A and B # 会先判断A,如果A为true,再去判断B,如果A为false,不会去判断B
if A or B # A,B 都会进行判断
理解这个特性,一些情况下写代码会更方便
举例:
d = { 'a': {'c': 1}, 'b': 2}
想要判断c是否存在并且值为1, 就可以直接这么写,而不用害怕报错。 if 'c' in d['a'] and d['a']['c'] == 1
2. Dataframe 切片
如果你使用布尔型索引 ,如 d = s[s['A'] >1] 是创建了一块新的内存存放d ,是新的,
如果你使用iloc,loc等切片方式,如s.iloc[1:3] ,是使用了原dataframe地址,因此对其进行的修改都会修改原dataframe
dataframe的iloc索引方法找出来的切片是开区间,前闭后开!注意了
3. Dataframe 设置值
举例
s = pd.DataFrame({'A': [1,None,3,None,4]})
b = pd.DataFrame({'A': [x for x in range(500, 800)], 'B': [x for x in range(100, 400)]})
如果想要按条件批量设置值,可以这么写
b.loc[b['A'] >2, 'A'] =3
但是如果b.loc[s['A'] >2, 'A'] =3 ,却不会成功,因为长度没有保持一致。保持一致的情况下,是可以成功的。
b.loc[b['A'] >2, 'A'] =3
4. conda 安装redis问题
使用python操作redis 数据库的时候 ,如果使用 pip install redis 安装的是python 连接 redis的模块, 但是如果是在anaconda 里面使用 ,要安装的是 redis-py 这个文件才对,才能正常使用redis