Python 从数据框中提取(转换)变量和相关值

Python 从数据框中提取(转换)变量和相关值,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示: a = pd.DataFrame({'col1': ('x','y'), 'col2':(1,2)}) 我想提取变量和相关值,例如 x=1 y=2 我该怎么做呢?您可以使用exec来解析和执行用字符串编写的Python代码 例如,exec('x=1')将创建并实例化变量x,您可以稍后在代码中使用该变量 考虑到这一点,以下方法将起作用 s = ','.join(a['col1']) + '=' + ','.join(a['col2'].astype('str')

我有一个熊猫数据框,如下所示:

a = pd.DataFrame({'col1': ('x','y'), 'col2':(1,2)})
我想提取变量和相关值,例如

x=1
y=2

我该怎么做呢?

您可以使用
exec
来解析和执行用字符串编写的Python代码

例如,
exec('x=1')
将创建并实例化变量
x
,您可以稍后在代码中使用该变量

考虑到这一点,以下方法将起作用

s = ','.join(a['col1']) + '=' + ','.join(a['col2'].astype('str'))
exec(s)
print(x,y)
产生

1 2
red green
此处
s
以字符串
'x,y=1,2'

如果值是字符串,则需要插入引号。基本上,
s
需要看起来像有效的Python代码。例如,你能做什么

a = pd.DataFrame({'col1': ('x','y'), 'col2':('red','green')})
s = ','.join(a['col1']) + '=' + ','.join(a['col2'].apply(lambda s:f'\'{s}\''))
exec(s)
print(x,y)
产生

1 2
red green

你好您可以使用值:
a.values
.a.values或a.to\u numpy将不会有帮助,因为我希望创建两个变量x和y并分配它们的值。它将为您提供列表数组。您可以从中提取所有内容。谢谢,当值为整数时,它几乎适用于我。当值是字符串(比如“红色”和“绿色”)时,修改会是什么?@anix anirban我在回答中添加了字符串示例。它工作起来很神奇!谢谢:)@anix anirban很高兴它有帮助!但不要过度使用
exec
,因为这通常被认为是不好的做法,请参阅。您可以使用标准的dtaframe方法访问
df
中的这些值,因此可能值得您进一步考虑一下设计。