如果输出中有一个变量,是否有办法将其投入使用?

If there's a variable in an output is there a way to bring it into use?

出于这个Pandastable,我做了一些工作。


   england     best       six      euros
0   kane      grealish  sancho     sterling
1   foden     mount     bellingham reece
2   trippier stones     walker     coady

这是我的代码:

for i in range(0, 3):
    for g in range(1, 4):
        if i+1==g:
            a = f'''r{g} = {list(df.iloc[i])}'''
            print(a)

我的输出:

r1 = ['kane', 'grealish', 'sancho', 'sterling']
r2 = ['foden', 'mount', 'bellingham', 'reece']
r3 = ['trippier', 'stones', 'walker', 'coady']

我有三个变量作为输出,但有没有办法让它们在本地使用? 比如,print(r1) 应该给我 ['kane', 'grealish', 'sancho', 'sterling']

有办法吗?提前致谢。

您可以使用字典,键为 "r1""r2" 等。例如:

d = {"r{}".format(i): v for i, v in enumerate(df.apply(list, 1), 1)}
print(d)

打印:

{'r1': ['kane', 'grealish', 'sancho', 'sterling'], 
 'r2': ['foden', 'mount', 'bellingham', 'reece'], 
 'r3': ['trippier', 'stones', 'walker', 'coady']}

print(d["r1"])

打印:

['kane', 'grealish', 'sancho', 'sterling']

此外,要将第 0 行打印为列表,您可以直接使用 .loc:

print(df.loc[0, :].tolist())

打印:

['kane', 'grealish', 'sancho', 'sterling']

您可以像@Andrej 建议的那样创建字典或将您的数据框转换为列表,然后按索引访问每一行。在全局命名空间中创建动态变量 r1, r2, r3 不是一个好的做法,因为它会污染您的命名空间,并且还会使这些变量难以管理:

lst = df.values.tolist()
lst[0]
# ['kane', 'grealish', 'sancho', 'sterling']

lst[1]
# ['foden', 'mount', 'bellingham', 'reece']

lst[2]
# ['trippier', 'stones', 'walker', 'coady']