4 | pandas常用笔记

import pandas as pd

基本操作

  1. 创建DataFrame数据集,列名为A、B、C
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})
  1. 提取指定值
df.loc[0]                 # 提取索引为0的行,即第一行
df.A                      # 提取A列,  方法一
df['A']                   # 提取A列,方法二
df.A[0]                   # 提取A列第一行数据,或用df['A'][0], df.loc[0]['A']
df[df.A<3]                # 条件取值,提取A列值小于3的行
df.loc[df.A<3, 'B']       # 提取出符合A列值小于3的B列值
df.loc[df.A<3, 'B'] = 1   # 为符合条件的B列赋值为1
# 多个条件取值 and
df.loc[(df.A<3) & (df.B>4), 'C']
# 多个条件取值 or
df.loc[(df.A<3) | (df.B>4), 'C']
# 使用lambda表达式提取出A列值小于3的行
df[df.A.apply(lambda x: x<3)]
  1. 改变列名
# 方法一,统一改变列名
df.columns = ['a', 'b', 'c']
# 方法二,改变某一个或多个列名
df.rename(columns={'A': 'a', 
                   'B': 'b'},
          inplace=True)          # inplace默认值为False不会改变df本身
  1. 删除指定行或列
df.drop(0)                     # 删除第一行
df.drop([0, 1])                # 删除第一行和第二行
df.drop(['A', 'B'], axis=1)    # 删除A和B两列,axis没有赋值时默认为0表示行
# 上述做法会获得删除后的数据集,但不会改变df本身
# 删除第一行并赋值给df
df = df.drop(0)
  1. 删除列后重设索引值从0排序
df.reset_index(drop=True, inplace=True)
  1. 复制数据集
ddf = df.copy()
  1. 快速查看数据集情况
ddf.head()       # 返回ddf前五行
ddf.head(3)      # 返回ddf前三行
ddf.info()       # 返回ddf每列的数据概览
ddf.A.isnull()   # 返回A列缺失值
  1. 改变某列的数据类型
ddf.A.dtype                  # 查看A列的数据类型
ddf.A = ddf.A.astype(str)    # 将A列的数据改为字符串型
  1. 赋值
df.A.replace(1, 5, inplace=True)    # 将A列中的全部1替换为5
# 将A列的第一个值改为 'None'
df.loc[0, 'A'] = 'None'             # 0为索引值
# 将A列的1、2、3分别改为a、b、c
df.A = df.A.map({1:'a', 2:'b', 3:'c'})   
# 根据A列的a、b、c三个值,新增三列哑变量
pd.get_dummies(df.A)
  1. 将数据集储存至本地csv
df.to_csv('df_name.csv')
# 避免写入索引 index
df.to_csv('df_name.csv', index=False)          
# 避免写入标题 header
df.to_csv('df_name.csv', header=False)

简单计算

df.A.value_counts()    # 返回A列中不同值的个数
df.B.mean()            # B列值计算平均数
df.B.std()             # B列值计算样本标准差
df.B.values.std()      # B列值计算总体标准差

(更新中)

你可能感兴趣的:(4 | pandas常用笔记)