def handle_time(t, replaced_str): return re.sub("(\d{4}-\d{2}-)(\d{2})(.*)", lambda x: x.group(1) + replaced_str + x.group(3), t) def gen_new_data(replaced_str): path = "./data/logs.xlsx" data = pd.read_excel(path) data["_time"] = data["_time"].apply(lambda x: handle_time(x, replaced_str=replaced_str)) data.to_excel("./data/ori_data/new_nginx_data_{}.xlsx".format(replaced_str), index=False, encoding="utf-8")
对 DataFrame 中 _time 列使用 apply处理,如需要传入参数需要使用 lambda,x 代表循环输入的数据,后面为需要传入的参数。
- iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可通过row[name]对元素进行访问。
- itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可通过row[name]对元素进行访问,比iterrows()效率高。
- iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可通过row[index]对元素进行访问。
apply 中使用 map() 函数

data["_time"] = data["date"].map(str) + " " + data["time"].map(str) # 合并两列
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225010.html原文链接:https://javaforall.net
