[python] pandas study notes (three) increase the data column

'''
增加列
'''

import pandas as pd

fpath = './ant-learn-pandas-master/datas/beijing_tianqi/beijing_tianqi_2018.csv'

rating = pd.read_csv(fpath)

rating.loc[:, 'bWendu'] = rating.loc[:, 'bWendu'].str.replace("℃", "").astype("int32")
rating.loc[:, 'yWendu'] = rating.loc[:, 'yWendu'].str.replace("℃", "").astype("int32")

1. Copy directly

#直接赋值法
rating['wencha'] = rating.loc[:, 'bWendu'] - rating.loc[:, 'yWendu']

2. Apply to add columns

#此时的x为传入的每行数据
def helper(x):
    if x['bWendu'] > 30:
        return "高温"
    if x['yWendu'] < -10:
        return "低温"
    return "常温"

#apply法
rating.loc[:, "wendu_type"] = rating.apply(helper, axis=1)
#查看该列数据分布
print(rating.loc[:, "wendu_type"].value_counts())

3. Assign to add multiple columns

#assign法
#返回一个新的对象
#摄氏度转华氏度
new = rating.assign(
    bWendu_huashi = lambda x:x["bWendu"] * 9 / 5 + 32,
    yWendu_huashi = lambda x:x["yWendu"] * 9 / 5 + 32
)

4. Assign value according to conditions

#按条件分别赋值
rating.loc[rating.loc[:, "bWendu"]-rating.loc[:, "yWendu"] > 8, "wendu_type"] = "温差大"
rating.loc[rating.loc[:, "bWendu"]-rating.loc[:, "yWendu"] <= 8, "wendu_type"] = "温差小"

print(rating)

Guess you like

Origin blog.csdn.net/Sgmple/article/details/113040563