1. Pandas 数据分析常用设置:

  1. import pandas as pd
  2. import seaborn as sns
  3. import matplotlib
  4. import matplotlib.pyplot as plt
  5. %matplotlib inline
  6. # 指定默认字体
  7. matplotlib.rcParams['font.sans-serif'] = ['SimHei']
  8. matplotlib.rcParams['font.family']= 'sans-serif'
  9. # 解决负号’-‘显示为方块的问题
  10. matplotlib.rcParams['axes.unicode_minus'] = False

2. loc/iloc 和 at/iat 的区别:

loc/iloc 的参数可以是数组,比如 df.iloc[[0,1,2],[0,1,2]]。
而 at/iat 的参数只能是单个的 df.iat[0,1]

3. 字符串转换时间戳

  1. # 秒
  2. pd.to_datetime('1970-01-01').value // 10 ** 9
  3. # 毫秒
  4. pd.to_datetime('1970-01-01').value // 10 ** 6
  5. # Series 转换
  6. data['ts'] = pd.to_datetime(cn_data['date_string']).apply(lambda x: (x.value // 10 ** 9))

4. 时间戳转日期对象

  1. # 默认单位是纳秒 nanosecond 1s = 10**9 ns
  2. pd.to_datetime(1593573950 * (10 ** 9))
  3. # 通过参数可以指定单位
  4. pd.to_datetime(1593573950, unit='s')
  5. pd.to_datetime(1593573950497, unit='ms')

5. 时间对象转字符串

  1. df['time'].dt.strftime('%Y-%m')
  2. #以下是格式定义
  3. 代码 说明
  4. %Y 4位数的年
  5. %y 2位数的年
  6. %m 2位数的月[01,12]
  7. %d 2位数的日[0131]
  8. %H 时(24小时制)[00,23]
  9. %l 时(12小时制)[01,12]
  10. %M 2位数的分[00,59]
  11. %S 秒[00,61]有闰秒的存在
  12. %w 用整数表示的星期几[0(星期天),6]
  13. %F %Y-%m-%d简写形式例如,2017-06-27
  14. %D %m/%d/%y简写形式

6. 抽样

  1. DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

抽样数量

n: 行数
frac:按比例抽取 0.1 抽取 10%

抽样方式

replace: 是否为有放回抽样

7.类型转换

  1. df['room'].astype(str)

8.文字提取

  1. # 801 中提取楼层号 8
  2. df['floor'] = df['room'].astype(str).str.extract('(\d+)\d{2}')