【问题标题】:How to assign a String variable to a dataframe name如何将字符串变量分配给数据框名称
【发布时间】:2018-10-21 10:11:24
【问题描述】:

我遇到了一个问题,这是一个 for 循环程序。如下所示:

list = [1,2,3,4]

for index in list:
    new_df_name = "user_" + index
    new_df_name = origin_df1.join(origin_df2,'id','left')

但“new_df_name”只是一个变量和字符串类型。

如何实现这些?

【问题讨论】:

  • 如果你想将index 附加到user_,试试这个:new_df_name = "user_" + str(index)
  • 但是数据框连接不能返回字符串类型名称。 new_df_name_df = "user_" + region new_df_name_df = user_profile_region.join(shopee_backend_user_df, 'userid', 'left') 无法运行。
  • 您可以使用一个将数据帧附加到的列表,然后将其减少为一个。或者您可以在循环中迭代地创建 result_df。

标签: python apache-spark dataframe pyspark spark-dataframe


【解决方案1】:

我认为,您真正需要的是拥有一个数据框列表(不必具有任何特定名称),然后将它们合并在一起。

dataframes = [df1, df2, df3, etc... ]

res_df, tail_dfs = dataframes[0], dataframes[1:]
for df in tail_dfs:
  res_df = res_df.unionAll(df)

更新。 评论中描述的联合更好的选择。

【讨论】:

  • 或没有索引:res_df = reduce(lambda a, b: a.union(b), dataframes)
猜你喜欢
  • 2016-08-25
  • 2021-11-28
  • 1970-01-01
  • 2019-08-19
  • 2018-10-08
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多