Pandas如何新增数据列的四种方法_4

"""
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,python,python)