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


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

1、增加新列,或更改某列的值

df["列名"]=值
 
如果值為固定的一個值,則dataFrame中該列所有值均為這個數據
 

2、處理某列

df["列名"]=df.apply(lambda x:方法名(x,入參2),axis=1)
 
說明:
1、方法名為單獨的方法名,可以處理傳入的x數據
2、x為每一行的數據,做為方法的入參1;x中的數據可以用【x.列名】來獲取
3、入參2等為方法需要的其他參數,不需要可以不寫
4、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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM