python NaN, null,空

python问题及解决

  • 1.关于NaN,null,非空的判断等问题
    • 1.1 NaN != NaN
  • 2. x.ravel()和x.flatten()的区别
  • 3. 判断[]
  • 3. 具体了解numpy,pandas,scipy等等,到底是什么以及有什么区别
  • 4. numpy.contatenate和pandas.concat的区别
  • 5. axis=0 和1到底怎么区别横行和竖行

1.关于NaN,null,非空的判断等问题

使用pandas DataFrame的处理数据的过程中,遇见太多问题,整理此文档,记录遇见的问题以及解决方法,方便自己下次查看。

1.1 NaN != NaN

有些条目中没有数据,打印时它会显示成nan,而nan是没有办法和任何数据进行比较的,它不和任何值相等,包括他自己(因此也可以用 a ! = a 来判断a是否是nan)。

import pandas as pd
df = pd.read_csv('test.csv')
print(df)
      name  id
   0 zhangsan 1
   1 lisi        2
   2 wanger  NaN
   3 wanzi   4
   print(df['id'].notnull()
   0   True
   1  True
   2 False
   3 True
   print(df[df['id'].notnull()]
        name    id
    0 zhangsan  1
    1  lisi             2
    3  wanzi   4
  

2. x.ravel()和x.flatten()的区别

,这两个函数的作用是,将多维降低为一维。返回copy还是返回原图的区别。x.flatten()返回的是copy,修改它,不会对原始的x有影响,但是x.ravel()返回的是原始的view,修改它会直接修改原始的x值。

>> x = np.array([[1,2],[3,4]])
>>> x.flatten()[1] = 100
>>> print(x)
[[1 2]
 [3 4]]
>>> x.ravel()[1] = 100
>>> print(x)
[[  1 100]
 [  3   4]]

3. 判断[]

def pd(st):
    if st:
        print('不为空')
def pd2(st):
    if not st:
        print('不存在')
def pd1(st):
    if st is None:
        print('是 None')
pd(a)  # 不返回任何内容,,即not st
pd1(a)  # 不返回任何内容,即 not None
pd(2)   # 返回“不存在”,即 not st
不为空

即’a = []’ 为’ if not a’ = true, 即满足 not a, 但是不满足 is None

3. 具体了解numpy,pandas,scipy等等,到底是什么以及有什么区别

4. numpy.contatenate和pandas.concat的区别

5. axis=0 和1到底怎么区别横行和竖行

你可能感兴趣的:(python——从白痴开始)