Pandas新增数据列
生活随笔
收集整理的這篇文章主要介紹了
Pandas新增数据列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、pandas新增數據
在進行數據分析時,經常需要按照一定條件創建新的數據列,然后進行進一步分析。1、pandas新增數據的四種方法
1.直接賦值 2.df.apply方法 3.df.assign方法 4.按條件選擇分組分別賦值二、讀取csv數據到dataframe
import pandas as pd fpath = "./datas/beijing_tianqi_2018.csv" df = pd.read_csv(fpath) df.head()ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel0 2018-01-01 3℃ -6℃ 晴~多云 東北風 1-2級 59 良 21 2018-01-02 2℃ -5℃ 陰~多云 東北風 1-2級 49 優 12 2018-01-03 2℃ -5℃ 多云 北風 1-2級 28 優 13 2018-01-04 0℃ -8℃ 陰 東北風 1-2級 28 優 14 2018-01-05 3℃ -6℃ 多云~晴 西北風 1-2級 50 優 1三、直接賦值的方法:清理溫度列,變成數字類型
# 替換掉溫度的后綴℃ df["bWendu"] = df["bWendu"].str.replace("℃", "").astype('int64') df["yWendu"] = df["yWendu"].str.replace("℃", "").astype('int64') df.head()ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel 0 2018-01-01 3 -6 晴~多云 東北風 1-2級 59 良 2 1 2018-01-02 2 -5 陰~多云 東北風 1-2級 49 優 1 2 2018-01-03 2 -5 多云 北風 1-2級 28 優 1 3 2018-01-04 0 -8 陰 東北風 1-2級 28 優 1 4 2018-01-05 3 -6 多云~晴 西北風 1-2級 50 優 1#實例:計算溫差 # 注意,df["bWendu"]其實是一個Series,后面的減法返回的是Series df["wencha"] = df["bWendu"] - df["yWendu"] df.head()ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel wencha 0 2018-01-01 3 -6 晴~多云 東北風 1-2級 59 良 2 9.0 1 2018-01-02 2 -5 陰~多云 東北風 1-2級 49 優 1 7.0 2 2018-01-03 2 -5 多云 北風 1-2級 28 優 1 7.0 3 2018-01-04 0 -8 陰 東北風 1-2級 28 優 1 8.0 4 2018-01-05 3 -6 多云~晴 西北風 1-2級 50 優 1 9.0 df.head()四、df.apply方法
實例:添加一列溫度類型:
1. 如果最高溫度大于33度就是高溫 2. 低于-10度是低溫 3. 否則是常溫 def get_wendu_type(x):if x["bWendu"] > 33:return '高溫'if x["yWendu"] < -10:return '低溫'return '常溫'# 注意需要設置axis==1,這是series的index是columns df["wendu_type"] = df.apply(get_wendu_type, axis=1) # 查看溫度類型的計數 df["wendu_type"].value_counts()常溫 329高溫 29低溫 8Name: wendu_type, dtype: int64 df2 = df["wendu_type"].value_counts() for k,v in df2.iteritems():print(k,v)常溫 329高溫 29低溫 8五、df.assign方法
實例:將溫度從攝氏度變成華氏度 # 可以同時添加多個新的列 df.assign(yWendu_huashi = lambda x : x["yWendu"] * 9 / 5 + 32,# 攝氏度轉華氏度bWendu_huashi = lambda x : x["bWendu"] * 9 / 5 + 32 )六、按條件選擇分組分別賦值
按條件先選擇數據,然后對這部分數據賦值新列 實例:高低溫差大于10度,則認為溫差大 # 先創建空列(這是第一種創建新列的方法) df['wencha_type'] = '' df.loc[df["bWendu"]-df["yWendu"]>10, "wencha_type"] = "溫差大" df.loc[df["bWendu"]-df["yWendu"]<=10, "wencha_type"] = "溫差正常" df["wencha_type"].value_counts()溫差正常 187溫差大 178Name: wencha_type, dtype: int64總結
以上是生活随笔為你收集整理的Pandas新增数据列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: betapert分布 matlab,[转
- 下一篇: 定时提醒软件的提醒事项智能列表怎么打开