"""
pandas如何新增数据列
1.直接赋值
2.df.apply方法
3.df.assign方法
4.按条件选择分组分别赋值
"""
import pandas as pd
import numpy as np
# 导入csv
path = './test.csv'
df = pd.read_csv(path)
# 1.直接赋值
# 先修改温度值,去掉C并改为整数
df.loc[:,'bWendu'] = df['bWendu'].astype(str).str.replace('C','').astype('int32')
df.loc[:,'yWendu'] = df['yWendu'].astype(str).str.replace('C','').astype('int32')
# 新增温差列
df[:,'wencha'] = df['bWendu'] - df['yWendu']
# 2.df.apply方法
# 首先定义一个函数
def get_wendu_type(x):
if x['bWendu'] > 33:
return '高温'
elif x['bWendu'] < -10:
return '低温'
else:
return '常温'
df.loc[:,'wendu_type'] = df.apply(get_wendu_type,axis=1) # 注意这里要设置axis=1,这里是series的index或者column,而且axis=1就是列
# 查看温度类型的计数
wendu_type = df['wendu_type'].value_counts()
# 3.df.assign方法
# 可以同时添加多个新的列
df.assign(
bWendu_huashi = lambda x : x['bWendu'] * 9 / 5 + 3.2,
yWendu_huashi = lambda x : x['yWendu'] * 9 / 5 +3.2
) # 不会修改df本身,返回的是一个新的对象
# 4.按照条件选择分组,分别赋值(就是说按照条件先选择数据,然后将这批数据赋值给新列)
# 首先创建空列(这是第一种创建新列的方法)
df['wendu_type'] = ''
df.loc[df['bWendu']-df['yWendu']>10,'wendu_type'] = '温差大'
df.loc[df['bWendu']-df['yWendu']<=10,'wendu_type'] = '温差小'
count_1 = df['bWendu'].value_counts()
Pandas如何新增数据列的四种方法_4
最新推荐文章于 2024-03-22 20:16:17 发布