英文文档:链接

1.具体应用案例

  1. import pandas as pd
  2. import numpy as np
  3. path=r"路径"
  4. df=pd.read_excel(path) #读取文件
  5. df.info() #展示数据集大概信息
  6. df.describe() #仅展示数值类型的列(如int float)
  7. #对数据框架的某一列的数据类型全转换为另一数据类型时
  8. #1.函数法
  9. def changeStr(x):
  10. return str(x)
  11. df.某个列名 = df.某个列名.apply(changeStr)
  12. #2.lambda表达式
  13. df.某个列名 = df.某个列名.apply(lambda x:str(x))
  14. #查找数据框中的重复行:布尔规则,其中df.duplicated()返回为true或者false的一张表
  15. df[df.duplicated()] #这种方式更适合于读,不适合于写,一般适合写的都是loc()
  16. #去掉重复行,新的数据集为df1
  17. df1 = df.drop_duplicates()
  18. #数据集的索引放入一个列表中
  19. df1[布尔规则].index
  20. #查找数据框架中的为NaN的数据:布尔规则
  21. df[df.某个列名.isnull()]
  22. #常用的查找 loc iloc
  23. #日期操作 d.weekday() d.weekday_name
  24. #保存excel
  25. path=r"自定义路径"
  26. df1.to_excel(path)
  27. #求后一天跟前一天的增幅
  28. df.diff()
  29. 得到某一列数值型数据其中 每后一列减去前一列得差值
  30. #数据利差标准化处理
  31. def minMaxScaler(data):
  32. p = (data-data.min()/(data.max()-data.min()))
  33. return p
  34. df1["标准化交易额"] = minMaxScaler(df1.交易额)

2.loc和iloc的区别

pd.iloc[行号,列号]
pd.loc[行标签,列标签]

iloc是基于索引位来选取数据集,行号和列号都是从0开始数而且还是前开后闭,比如iloc[:3]则是选取前三行0,1,2三行数据。
loc是基于标签进行选取。闭区间,loc[:3]表明取到3,如果是从0开始的标签,则取0,1,2,3总共4行数据。

还有一个需要注意的地方,iloc中含有-1的用法,在loc中不会出现-1的这种用法。具体iloc中含-1的使用方法及结果如下:
iloc[n,-1]是选取的第n行最后一个元素(从0开始)
**

3.datetime库常用函数

1.导包并获得当前时间

image.png

2.将时间格式化

方法1:转化为datetime.date类型
只有datetime.date类型的才能用fromtimestamp函数
image.png

image.png
方法2:转化为字符串
image.png

3.替换时间中年或者月或者日

对应参数即可
image.png

4.修改时间中的日、时、分、秒等

对应参数即可days,hours…
image.png

5.显示时间中的信息

包括 哪一年 该年第几月 该月第几天 几点 几分 几秒 这个星期的星期几(注:从0开始,即星期1为0)
image.png

4.pandas中的apply函数

1.对列操作

  1. import pandas as pd
  2. import os
  3. def f(column):
  4. print(type(column))
  5. df=pd.DataFrame({'column1':[1,2,5,8,63],'column2':[5,6,85,3,5],'column3':[54,36,45,85,69]},index=['fs','fd','f','fa','df'])
  6. print(df)
  7. df.apply(f)

image.png

  1. import pandas as pd
  2. import os
  3. import numpy as np
  4. df=pd.DataFrame({'column1':[1,2,5,8,63],'column2':[5,6,85,3,5],'column3':[54,36,45,85,69]},index=['fs','fd','f','fa','df'],dtype=np.object)
  5. print(df)
  6. def f2(x):
  7. x[3]="hello ,good boy"
  8. x[2]='hello ,good girl'
  9. df.apply(f2)
  10. print(df)

image.png

2.对行操作

  1. def f3(x):
  2. print(type(x))
  3. print(x)
  4. df.apply(f3,axis=1)

image.png
注:apply对行进行操作时,是不能对元素进行赋值的,但可以进行数据类型转换,也就是不能对行的值进行更改。
**

5.pandas中的drop与delete

1.drop函数

  1. DataFrame.drop(labels=None, axis=0, index=None,
  2. columns=None, level=None, inplace=False, errors='raise')
  3. labels是指要删除的标签,一个或者是列表形式的多个,
  4. axis是指处哪一个轴,
  5. columns是指某一列或者多列,
  6. level是指等级,针对多重索引的情况,
  7. inplaces是否替换原来的dataframe
  1. df = pd.DataFrame(np.arange(12).reshape(3,4),
  2. columns=['A', 'B', 'C', 'D'])
  3. df

image.png

  1. #指定删除相关的列,没有带columns,所以要指出是哪个轴上的
  2. >>> df.drop(['B', 'C'], axis=1)

image.png

  1. #这里带有columns,所以不用加上axis参数
  2. >>> df.drop(columns=['B', 'C'])

image.png

  1. #删除指定索引的行,这里没有axis参数,就是默认axis=0,也就是删除行
  2. >>> df.drop([0, 1])

image.png

多重索引另参考博客:链接

2.delete函数

  1. del df['A'] # 删除A列,会就地修改

value_counts
#astype
#str.find