使用 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))