【问题标题】:What's the analogous function for aasign() of R in Python?Python 中 R 的 aasign() 的类似函数是什么?
【发布时间】:2016-07-21 02:37:35
【问题描述】:

有一个清单。

stud = ['mark', 'kael', 'joey', 'ash']

我想为螺柱列表中的每个项目分配一个数据框。 (将列表中的每个项目作为变量名) 例如。

mark = dataframe1
kael = dataframe2
joey = dataframe3
ash = dataframe4

我知道我们可以在 R 中使用 assign() 函数来做到这一点。我们如何在 Python 中实现这一点。

【问题讨论】:

  • 这里的datafrane是指Pandas数据框吗??
  • 请注意,这在 R 中是可能的,但通常没有任何理由实际这样做。

标签: python r variable-assignment assign


【解决方案1】:

我会使用exec() 从字符串中分配变量名。 像这样的:

dataframe1,dataframe2,dataframe3,dataframe4 = {'a'},{'b'},{'c'},{'d'}
stud = ['mark', 'kael', 'joey', 'ash']
dfs = [dataframe1,dataframe2,dataframe3,dataframe4]

for v,d in zip(stud,dfs):
    exec('{}={}'.format(v,d))

>>> mark
{'a'}

使用 DataFrame,您必须将 dfs 从对象列表更改为字符串列表:

from pandas import DataFrame
import numpy as np

dataframe1,dataframe2,dataframe3,dataframe4 = DataFrame(np.random.randn(10, 5)),DataFrame(np.random.randn(10, 5)),DataFrame(np.random.randn(10, 5)),DataFrame(np.random.randn(10, 5))

stud = ['mark', 'kael', 'joey', 'ash']
dfs = ['dataframe1','dataframe2','dataframe3','dataframe4']

for v,d in zip(stud,dfs):
    exec('{}={}'.format(v,d))

【讨论】:

  • {'a'} 是一个集合,我想给出一个数据框。如果我在 dfs 中传递数据帧,它会给我一个语法错误。
  • 然后将数据框的名称作为字符串传入dfs dfs = ['dataframe1','dataframe2','dataframe3','dataframe4']
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
  • 2015-02-08
  • 2021-02-14
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
相关资源
最近更新 更多