我想在pandas
中创建函数并传递管道或应用方法,以避免递归赋值和练习。
这是我的示例数据框。
A
0 1
1 2
2 3
3 4
我定义了我的转换器函数,以传递管道方法。
def converter(df,cols,types):
df.cols=df.cols.astype(types)
return df
然后传递给管道方法。
df.pipe(converter,cols=df.A,types="str")
但它会导致错误。
AttributeError:'DataFrame'对象没有属性'cols'
如何避免此类错误?
答案 0 :(得分:1)
您需要为选择列添加[]
:
df = pd.DataFrame({'A':[1,2,3,4]})
print (df)
A
0 1
1 2
2 3
3 4
def converter(df,cols,types):
df[cols]=df[cols].astype(types)
return df
print (converter(df, 'A', float))
A
0 1.0
1 2.0
2 3.0
3 4.0