Pandas 新增修改数据 + 数据统计函数 + 根据axis进行删除

新增修改数据

# 1)新增Series
s1 = pd.Series(list(range(4)), name='F')
# 2)新增DataFrame的数据
df = df.append({'A':i}, ignore_index=True)
# 3)使用concat新增DataFrame数据
pd.concat(
[pd.DataFrame([i], columns=['A']) for i in range(5)],
ignore_index=True
)
# 4)df.apply方法
# 利用函数,新增一列 值为其他列的条件筛选后自定义的值
def get_temperature_type(df):
if df['bWendu'] > 0:
return '高温'
if df['bWendu'] < 0: # 这里如果temperature_type为已有列为修改,否则新增
return '低温' # axis=1,指定索引为columns,新增一列名字为temperature_type
new_column = df.loc[:, 'temperature_type'] = df.apply(get_temperature_type, axis=1)
df['temperature_type'].value_counts() # 查看新列计数
# 5)df.assign方法
# 在原有列的基础上新增列 ,新列的名称为yWendu_huashi和bWendu_huashi
df.assign(
yWendu_huashi = lambda df:df['yWendu'] * 9/5 + 32,
bWendu_huashi = lambda df:df['bWendu'] * 9/5 + 32
)
# 6)条件选择分组赋值
# 新增一列并重新利用条件选择赋值
df['wencha_type'] = '' # 如果成立 认为wencha_type新列为后面的值
df.loc[df['bWendu'] - df['yWendu'] > 0, 'wencha_type'] = '温差大' # 如果b温度-y温度>0,那么将温差大复制给wencha_type新列
df.loc[df['bWendu'] - df['yWendu'] <=0, 'wencha_type'] = '温差正常'
df['wencha_type'].value_counts() # 查看新列数量
# SettingWithCopyWarning
# 7)先对label进行筛选,在计算筛选后的温差结果 (本质:新增列的基础上对label进行限制)
condition = df['ymd'].str.startswith('2018-01')
df.loc[condition, 'wen_cha'] = df['bWendu'] - df['yWendu']
# 8)先将2018年1月的信息copy一份,在对copy后的结果进行新增列的操作
df_month1 = df[condition].copy()
df_month1['wen_cha'] = df['bWendu'] - df['yWendu']

数据统计函数

1)汇总类 + 去重 + 计数
# 1.1)取出所有的统计结果
df.describe()
# 1.2)平均值
df['bWendu'].mean()
# 1.3)标准差
df['bWendu'].std()
# 1.4)最大值
df['bWendu'].max()
# 1.5)最小值
df['bWendu'].min()
# 1.6)去重
df['fengxiang'].unique()
# 1.7)计数
df['fengxiang'].value_counts()
# 2)相关系数和协方差
"""
相关系数:衡量相似程度,当他们的相关系数为1时,说明两个变量变化时的正向相似最大,当相似系数为-1时候,说明两个变量的反向相似程度最大
相关系数矩阵:df.corr()
协方差:衡量同向反向程度,如果协方差为正,说明x,y同向变化,协方差越大说明同向程度越高。如果协方差为负,说明x,y反向运动,协方差越小说明反向程度越高
协方差矩阵:df.cov()
"""
# 单独查看2个列的相关系数和协方差:
df['aqi'].corr(df['bWendu']) # # 查看空气质量和最高温度的相关系数
df['aqi'].corr(df['bWendu']) - df['aqi'].corr(df['yWendu']) # 空气质量和温差的相关系数

axis参数_删除行列 聚合操作

import pandas as pd
import numpy as np
df = pd.DataFrame(
np.arange(12).reshape(3, 4), # 得到12个数字 reshape成3行4列的矩阵
columns=['A', 'B', 'C', 'D'] # 指定列索引
)
# 1)单列drop,删除某一列
df.drop('A', axis=1)
# 2)单行drop,删除某一行
df.drop(1, axis=0)
# 3)按axis=0/index执行mean聚合操作,每一列的平均值,用梳子往下梳,(行列结果相反!!!)
df.mean(axis=0)
# 4)按axis=1/columns执行mean聚合操作
df.mean(axis=1)
# 5)再次举例,加深理解
def get_sum_value(df):
return df['A'] + df['B'] + df['C'] + df['D']
df['sum_value'] = df.apply(get_sum_value, axis=1) # 使用apply方法调用函数
posted @   aall_blue  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示