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数据统计函数

汇总类总计

  1. 一下提取所有数字列表统计结果
    df.describe()
  2. 查看单个Series数据
    df['day'].mean()
  3. 最大值和最小值
    df['day'].max():最大值
    df['day'].max():最小值

唯一去重和按值统计

  1. 唯一性去重
    df['day'].unique()
  2. 按值计数
    df['day'].values_counts()

相关系数和协方差

  1. 相关系数:衡量同向反向程度
    -> 如果协方差为正,说X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高。
    df.corr()
    查看a和b的相关系数
    df['a'].corr(df['b'])

  2. 协方差:衡量相似程度
    -> 当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,当相关系数为-1时,说明两个变化的反向相似度最大
    df.cov
    查看a和b的协方差
    df['a'].cov(df['b'])

以上是关于Pandas从入门到实战(day2)的主要内容,如果未能解决你的问题,请参考以下文章

Pandas从入门到实战(day3)

Java从小白到入门,Day2(运算符和表达式)

高端实战 Python数据分析与机器学习实战 Numpy/Pandas/Matplotlib等常用库

Python应用实战-从pandas的角度来对比MySQL,教你如何更快更好的学习sql

10-Python3从入门到实战—基础之函数

微搭低代码从入门到实战