pandas之dataframe踩坑指南(一)---apply(func)

时间:2021-11-28 05:42:43

 

pandas之dataframe踩坑指南(一)---apply(func)

 

 

import pandas as pd
data = pd.read_csv(r"test数据.csv", engine="python",
                   encoding="utf-8")

def pprint(row):
    row["extra"]=1
    print(row)
    return row

data = data.apply(lambda x: pprint(x), axis=1)
print(data)

pandas之dataframe踩坑指南(一)---apply(func)

 apply在第一列/行上调用func两次,以决定是否可以进行某些优化。

直接拿print使用,就不会出现 apply在第一列/行上调用func两次的情况。

data = data.apply(lambda x: print(x), axis=1)

pandas之dataframe踩坑指南(一)---apply(func)

我猜测先运行第一行式为了设置分配内存空间。

解决方案:

flag=False

def pprint(row):
    global flag

    if flag:
        row["extra"]=1
        print(row)
        else:
        flag=True
  
    return row
data = data.apply(lambda x: pprint(x), axis=1) print(data)

pandas之dataframe踩坑指南(一)---apply(func)