栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas给excel新增一列_pandas加一列数据?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas给excel新增一列_pandas加一列数据?

本文摘要:

新增数据列
1.直接赋值
2.df.apply方法
3.df.assgin方法
4.按条件选择分组分别赋值

直接赋值

例子续接上回

# df['High']、df['Low']其实是两个Series,相减返回仍是Series
# 此处'High-Low'是要新增的新列名,新列数据为df表每行的High列和Low列的高低差
df.loc[:, 'High-Low'] = df['High'] - df['Low']
df.apply方法

下面示例:
新增一个’wendu_type’列,表示温度类型:
1.如果High大于33则为高温
2.Low小于10则为低温
3.否则为常温

df.apply(func, axis) 返回一个Series对象,axis=0则用df的行索引index作为返回对象的索引,当axis=1则用df的列索引columns作为返回对象的索引。
对axis参数有疑惑可参考鄙人的另一篇小文章帮助理解:Python - Pandas 经常用到的axis参数怎么理解?千层蛋糕

def get_wendu_type(x):
	if x['High'] > 33:
		return '高温'
	elif x['Low'] < 10:
		return '低温'
	else:
		return '常温'

# 此处axis=1,Series的index为colums
df.loc[:, 'wendu_type'] = df.apply(get_wendu_type, axis=1)

# 查看温度类型的计数,会对该列进行分组统计
df['wendu_type'].value_counts()
# 返回一个Series
# 高温 137
# 常温 123
# 低温 66
# Name:wendu_type, dtype: int64
df.assign方法

该方法不修改df本身,返回一个新的Dataframe
该方法可以同时新增多列

df.assign(
	Higher = lambda x: x['High'] + 1
	Lower = lambda x: x['Low'] - 1 
)
按条件选择分组分别赋值
# 直接赋值新增列,给个默认值,会广播到所有行
df['new'] = ''  # 可以是任意默认值 1、''、'x'等

df.loc[df['High'] - df['Low'] > 10, 'new'] = '差别大'

df.loc[df['High'] - df['Low'] <= 10, 'new'] = '差别小'

df['new'].value_counts()
# 返回
# 差别大 130
# 差别小 100
# Name:new, dtype:int64

*此文仅为个人笔记

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783068.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号