| 读取 excel/csv | # 读取 excel csv
data =
pd.readcsv(‘/Users/ning/dataset/ops_brain.csv’, low_memory=False) |
| —- | —- |
| 某列设为日期格式 | # 设置一列为日期格式
data.report_date
= pd.to_datetime(data.report_date) |
| 筛选字段 | # 筛选列
a =
data[[‘report_date’, ‘citycode’]] |
| | # 单条件筛选
b =
data[data.report_date==’2019-04-01’] |
| | # 多条件筛选
b =
data[(data.report_date==’2019-04-01’) & (data.citycode == ‘MBK_86’)] |
| | # 新增字段 及 单一内容填充
a = data[[‘report_date’, ‘citycode’]]
a[“sex”] = “male”
# 新增字段 及 逐行内容填充
a[“sex”] = [“male”, “male”, “female”, “male”] |
| | # 计算/逻辑判断等方式添加字段
import numpy as np
a[“a1”] = a.rides + 1
a[“a2”] = a.rides * 100
a[“a3”] = np.where(a[“sex”] == “male”, 1, 0)
a |
| | # 删除字段:pop 方法
a.pop(“sex”)
a |
| 查看信息 | data.info() #查看基本信息
data.head(10) # 查看前10行
data.shape
# 查看几行几列
data.T
# 转置
data.values
# 返回一个 array |
| 描述与统计 | data.age.max() #
最大值
min # 最小值
mean # 平均值
quantile # 中位数
sum #求和
data.describe() #
会显示出数字类型的列的统计指标:总数、平均数、标准差、最小值、最大值、25%/50%/75% 分位数
data.describe(include=[“object”] )
#
会显示出非数字类型的列的统计指标:总数,去重后的个数、最常见的值、最常见的值的频数
a.rides.value_counts() # 各个值出现次数 |
| 排序 | data.sort_values(by=”字段”) # 正序
data.sort_values(ascending=False, by=’字段’) # 倒序
data.sort_values(by=[“age”, “city”]) # 多字段排序
a.rides.nlargest(5) #
最大的n个值
a.rides.nsmallest(5) # 最小的n个值 |
| 转换数据类型 | https://www.yuque.com/7125messi/wydusr/okebzq
data =
pd.DataFrame(data)
data.columns = [‘A’,’B’] # 转换为 dataframe并起名
data.rename(columns={‘a’:’A’}) # 只给某个字段重命名 |
| 缺失值 | 过滤缺失值
a[a.rides.notnull()] # 过滤某字段为 null 的值
data.dropna(axis=0, how=”any”) #
一行数据只要有一个字段存在空值即删除
data.dropna(axis=0, how=”all”) #
一行数据所有字段都为空值才删除
data.dropna(axis=0, how=”any”, subset=[“city”, “sex”]) #
一行数据中只要 city 或 sex 存在空值即删除
填充缺失值
data.age.fillna(0) # age 缺失都填 0
data.age.fillna(method=”ffill”) #
age 缺失用前一列填充
data.age.fillna(method=”backfill”) #
age 缺失用后一列填充
data.age.interpolate() # 使用线性差值来填充 |
| 替换 | data.age.replace(40, np.nan) #
把 40 替换成空值
user_info.city.replace(r’\s+’, np.nan, regex=True) # 正则表达式,空白字符串替换成空值 |
| 文本数据处理 | # 将出生日期转为时间戳
user_info[“birth”] = pd.to_datetime(user_info.birth)
# 将文本转为小写
user_info.city.str.lower()
# 统计每个字符串的长度
user_info.city.str.len()
# 将空字符串替换成下划线
user_info.city.str.replace(“
“, ““)
#
将所有开头为 S 的城市替换为空字符串
userinfo.city.str.replace(“^S.*”, “ “)
# 根据空字符串来分割某一列
user_info.city.str.split(“ “, expand=True)
# 提取子串_
https://www.yuque.com/7125messi/wydusr/gcfef9 |
| | |
| | |
| | |
| | |
| | |
| | |
| | |