【问题标题】:Getting a string in a list to be equal a dataframe in a list获取列表中的字符串等于列表中的数据框
【发布时间】:2021-10-01 18:41:48
【问题描述】:

我有一个包含 table_names 的字符串列表:

table = ['table A', 'table B', 'table C'.... 'table J']

我还有一个数据框列表:

list_of_dataframes = [df1, df2, df3 ..]

这些列表长度相等。

如何循环遍历两个数据帧并使它们彼此相等?

我设法按如下方式单独循环它们,但希望它们彼此相等,这样df1 = table A..df10 = table J.

我试过的for循环

for i in table:
     i = l
for l in list_of_dataframes:
     l = i

【问题讨论】:

  • 首先,table A 在 Python 中不是有效的标识符。其次,为什么要为每个数据框使用单独的变量?为什么不使用dict 按表名存储对数据框的引用,例如{"table A": df1, "table B": df2, ...}?
  • 你试过什么?您的解决方案有什么问题?

标签: python pandas dataframe shortcut


【解决方案1】:

你为什么不为此创建一个字典?

你可以这样做:

for i, item in enumerate(table):
    table_name = item.split()[1]
    dict_of_tables[table_name] = list_of_dataframes[i]

【讨论】:

    【解决方案2】:

    字典是存储这些数据帧的更合适的方式:

    >>> dict(zip(table, list_of_dataframes))
    # {"table A": df1, "table B": df2, ...}
    

    或者,如果您只想通过他们的字母来称呼他们:

    >>> dict(zip("".join(table).replace("table ", ""), list_of_dataframes))
    # {"A": df1, "B": df2, ...}
    

    【讨论】:

      猜你喜欢
      • 2013-07-21
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2013-06-18
      • 2021-12-21
      • 2021-05-16
      • 1970-01-01
      • 2018-02-19
      相关资源
      最近更新 更多