一个简单的问题,我可以以某种方式将函数绑定到Pandas中的数据框列吗? 即如果我创建一个数据框,然后将一个csv文件读入其中,我可以这样说吗? column ['x']当数据加载到数据框中时,它将始终对x中的值运行y函数吗?例如,当实例化包含列名和函数作为键值对的对象时,我可以将字典传递给数据框吗?
答案 0 :(得分:1)
pipe
+ transform
将函数绑定到pd.DataFrame
对象并不是熊猫的工作方式。更好的方法是定义一个函数,该函数接收输入数据帧并执行所需的操作。然后将相同的功能重新用于其他数据框。
由于您具有将功能表的列标签映射到函数的输入字典,因此可以使用transform
。然后使用pipe
应用于任意数量的输入数据帧。
import pandas as pd, numpy as np
df1 = pd.DataFrame(np.arange(10).reshape((5, 2)))
df2 = pd.DataFrame(np.arange(10, 20).reshape((5, 2)))
def func1(x):
return x + 100
def func2(x):
return -x
def enrich_dataframe(mydf):
d = {0: func1, 1: func2}
return mydf.transform(d)
df1 = df1.pipe(enrich_dataframe)
df2 = df2.pipe(enrich_dataframe)
print(df1)
# 0 1
# 0 100 -1
# 1 102 -3
# 2 104 -5
# 3 106 -7
# 4 108 -9
print(df2)
# 0 1
# 0 110 -11
# 1 112 -13
# 2 114 -15
# 3 116 -17
# 4 118 -19