使用 for 循环链式方法调用
Chain method calls with for loop
我有一个名为 Bar 的 class 对象,它具有独特的属性 pd.DataFrame。我想通过循环调用每个DataFrame的列。然而,我得到的是字符串本身,而不是调用结果。
我该如何解决这个问题? &我在这里缺少什么概念?谢谢。
l=['chocolate', 'vanilla', 'strawberry']
def m(s):
xd='Bar.'+s+'.columns.str[:5]'
return xd
for s in l:
print (m(s))
哪个returns:
bar.chocolate.columns.str[:5]
bar.vanilla.columns.str[:5]
bar.strawberry.columns.str[:5]
创建字符串将不会访问属性。您需要像这样使用 getattr()
实际获取它们:
l=['chocolate', 'vanilla', 'strawberry']
def m(df, attribute):
return getattr(df, attribute).columns.str[:5]
for s in l:
print (m(Bar, s))
我有一个名为 Bar 的 class 对象,它具有独特的属性 pd.DataFrame。我想通过循环调用每个DataFrame的列。然而,我得到的是字符串本身,而不是调用结果。
我该如何解决这个问题? &我在这里缺少什么概念?谢谢。
l=['chocolate', 'vanilla', 'strawberry']
def m(s):
xd='Bar.'+s+'.columns.str[:5]'
return xd
for s in l:
print (m(s))
哪个returns:
bar.chocolate.columns.str[:5]
bar.vanilla.columns.str[:5]
bar.strawberry.columns.str[:5]
创建字符串将不会访问属性。您需要像这样使用 getattr()
实际获取它们:
l=['chocolate', 'vanilla', 'strawberry']
def m(df, attribute):
return getattr(df, attribute).columns.str[:5]
for s in l:
print (m(Bar, s))