pandas,對dataFrame中某一個列的數據進行處理

背景:dataFrame的數據,想對某一個列作邏輯處理,生成新的列,或覆蓋原有列的值
 
下面例子中的df均爲pandas.DataFrame()的數據
 

一、增長新列,或更改某列的值

df["列名"]=值
 
若是值爲固定的一個值,則dataFrame中該列全部值均爲這個數據
 

二、處理某列

df["列名"]=df.apply(lambda x:方法名(x,入參2),axis=1)
 
說明:
一、方法名爲單獨的方法名,能夠處理傳入的x數據
二、x爲每一行的數據,作爲方法的入參1;x中的數據能夠用【x.列名】來獲取
三、入參2等爲方法須要的其餘參數,不須要能夠不寫
四、axis=1,表示每次取一行數據進行處理,按行處理
 

例子以下:

根據列title的是否包含特定詞,來賦值給新的列1或0的值
 
bugInfo['IntegrationTest'] = bugInfo.apply(lambda x: self.bug_rule(x, "IntegrationTest"), axis = 1)
 
def bug_rule(self, frame, type):  # 處理列表中的數據,更新到sql數據庫中
    result = "0"
    if type == "SmokeTest":  # 冒煙測試
        if re.search("^\[冒煙\]|\[冒煙測試\]|【冒煙】|【冒煙測試】", frame["title"]):
            result = "1"
    elif type == "InterfaceTest":  # 接口測試
        if re.search("^\[接口\]|\[接口測試\]|【接口】|【接口測試】", frame["title"]):
            result = "1"
    elif type == "IntegrationTest":  # 集成測試
        if self.IntegrationTime != "" and self.IntegrationTime == frame["created_time"]:
            result = "1"
    return result
相關文章
相關標籤/搜索