Pandas从入门到实战(day2)
Posted 啊~小 l i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas从入门到实战(day2)相关的知识,希望对你有一定的参考价值。
新增数据列
读取csv数据
import pandas as pd
fpath = "./a.csv"
df = pd.read_csv(fpath)
print(df.head(2))
替换数据
df.loc[:, "week"] = df["week"].str. replace("#", "").astype('int32')
直接赋值
# 新增列
df.loc[:, "year"] = 2021
print(df.head())
# 运用前面的列进行操作
df.loc[:,"year-day"] = df['year'] - df['day']
print(df.head())
df.apply
沿着DataFrame轴应用函数。传递给函数的对象是Series对象,其索引要么是DataFrame的索引(axis=0),要么是DataFrame的列(axis=1)。
实列:如果week是1,代表周一,2代表周二.....将数字转化为汉字
def getWeek(x):
if x["week"] == 1:
return '周一'
if x["week"] == 2:
return '周二'
if x["week"] == 3:
return '周三'
if x["week"] == 4:
return '周四'
if x["week"] == 5:
return '周五'
if x["week"] == 6:
return '周六'
if x["week"] == 3:
return '周天'
return "week转换错误!"
df.loc[:,"week_Chinese"] = df.apply(getWeek, axis=1)
print(df.head())
统计类型计数天数
df["week_Chinese"].value_counts()
df.assign
将新列分配给DataFrame。返回一个新对象,除新列外,还包含所有原始列。
示例:将mounth+1放入一列,然后将year+1放入下一列
df.assign{
data1 = lambda x : x['mounth']+1
data2 = lambda x : x['year']+1
}
按条件选择分组分别赋值
df.loc[df['day']-15>0,'h_mounth']="下半月"
df.loc[df['day']-15<0,'h_mounth']="上半月"
pandas数据统计函数
汇总类总计
- 一下提取所有数字列表统计结果
df.describe()
- 查看单个Series数据
df['day'].mean()
- 最大值和最小值
df['day'].max()
:最大值
df['day'].max()
:最小值
唯一去重和按值统计
- 唯一性去重
df['day'].unique()
- 按值计数
df['day'].values_counts()
相关系数和协方差
-
相关系数:衡量同向反向程度
-> 如果协方差为正,说X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高。
df.corr()
查看a和b的相关系数
df['a'].corr(df['b'])
-
协方差:衡量相似程度
-> 当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,当相关系数为-1时,说明两个变化的反向相似度最大
df.cov
查看a和b的协方差
df['a'].cov(df['b'])
以上是关于Pandas从入门到实战(day2)的主要内容,如果未能解决你的问题,请参考以下文章
高端实战 Python数据分析与机器学习实战 Numpy/Pandas/Matplotlib等常用库