一.Python中所有的类成员(包括数据成员)都是公共的 ,所有的方法都是有效的。
只有一个例外:如果你使用的数据成员名称以双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。

二. 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。

对象:它是类的实例化。

方法:类中定义的函数。

三.__init__方法的第一参数永远是self,表示创建的类实例本身,

四.在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身

五.pandas中的loc和iloc

loc是根据index来索引;

iloc是根据行号来索引,行号从0开始,逐次加1。

例如:print(table.iloc[0])


print(table.loc['a'])

loc[0, :]是取所有的意思



六.   .shape[0]用来获取行数

        .shape[1]用来获取列数

 

七.列表可以随意改变长度!

八.用class是为了让代码更加整洁

九.Python引入了with语句来自动帮我们调用close()方法,这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。

十.文件的读写方式列表

 

十一.json.dumps()用于将字典形式的数据转化为字符串,json.loads()用于将字符串形式的数据转化为字典。

十二.如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到json.dump(),

json.load()用于从json文件中读取数据.

十三.os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。

十四.header :指定作为列名的行,默认0,即取第一行,数据为列名行以下的数据;若数据不含列名,则设定 header = None;#数据不含作为列名的行

In [21]: sheet = pd.read_excel('example.xls',sheetname= 1,header = None)
In [22]: sheet
Out[22]:
   0  1  2   3
0  1  3  5  学生
1  2  3  4  老师
2  4  1  9  教授
#默认第一行数据作为列名
In [23]: sheet = pd.read_excel('example.xls',sheetname= 1,header =0)
In [24]: sheet
Out[24]:
   1  3  5  学生
0  2  3  4  老师
1  4  1  9  教授

十五.
pandas中pd.read_excel()方法中的converters参数
 

pandas的pd.read_excel()方法读取excel文件时,遇到某一列的数据前面包含0(如010101)的时候,pd.read_excel()方法返回的DataFrame会将这一列视为int类型,即010101变成10101。

 

这种情况下,如果想要保持数据的完整性,可以以str类型来读取这一列,具体的实现如下:

1 df = pd.read_excel ("test.xlsx" , converters={'类别编码':str})

如上代码,即可将"test.xlsx"文件的"类别编码"一列读取为str对象类型。

十六.Python 字典(Dictionary) keys() 函数以列表返回一个字典所有的键。
注意返回的是键哦
十七.

以下实例展示了 zip 的使用方法:

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
十八.enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

以下展示了使用 enumerate() 方法的实例:

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

普通的 for 循环

>>>i = 0
>>> seq = ['one', 'two', 'three']
>>> for element in seq:
...     print i, seq[i]
...     i +=1
...
0 one
1 two
2 three

for 循环使用 enumerate

>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
...     print i, element
...
0 one
1 two
2 three
 
十九.pandas中的inplace参数

pandas 中 inplace 参数在很多函数中都会有,它的作用是:是否在原对象基础上进行修改

​ inplace = True:不创建新的对象,直接对原始对象进行修改;

​ inplace = False:对数据进行修改,创建并返回新的对象承载其修改结果。

默认是False,即创建新的对象进行修改,原对象不变,和深复制和浅复制有些类似。

二十.Pandas的to_csv()函数用于将DataFrame转换为CSV数据。

要将CSV数据写入文件, 我们只需将文件对象传递给函数即可。否则, CSV数据以字符串格式返回。

DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True,

index=True, index_label=None, mode='w',encoding=None, compression='infer', quoting=None, quotechar='"',

line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.')

# index:如果将值设置为True, 则CSV数据中将包含索引。否则, 索引值不会写入CSV输出中。

# encoding:这是一个可选参数, 由字符串值组成, 该字符串值表示在输出文件中使用的编码。编码的默认值为UTF-8

二十一.

def 函数名(参数1,参数2,参数…):
 函数体(语句块)
 return [返回值]
 这是一个函数的一般结构,后面括号必须有,里面有没有值再说。



XXXXXX.__init__在类中被用做构造函数

例如我们定义一个Box类,有width, height, depth三个属性,以及计算体积的方法:

1
2
3
4
5
6
7
8
9
10
class Box:
  def setDimension(self, width, height, depth):
    self.width = width
    self.height = height
    self.depth = depth
  def getVolume(self):
    return self.width * self.height * self.depth
b = Box()
b.setDimension(10, 20, 30)
print(b.getVolume())
 

我们在Box类中定义了setDimension方法去设定该Box的属性,这样过于繁琐,而用__init__()这个特殊的方法就可以方便地自己对类的属性进行定义,__init__()方法又被称为构造器(constructor)

1
2
3
4
5
6
7
8
9
10
11
12
13
class Box:
  #def setDimension(self, width, height, depth):
  #  self.width = width
  #  self.height = height
  #  self.depth = depth
  def __init__(self, width, height, depth):
    self.width = width
    self.height = height
    self.depth = depth
  def getVolume(self):
    return self.width * self.height * self.depth
b = Box(10, 20, 30)
print(b.getVolume())