【问题标题】:How to name dataframes with a for loop?如何使用 for 循环命名数据帧?
【发布时间】:2017-08-16 02:13:12
【问题描述】:

我想读取几个文件 json 文件并将它们写入带有 for 循环的数据帧。

review_categories = ["beauty", "pet"]

for i in review_categories:
    filename = "D:\\Library\\reviews_{}.json".format(i)
    output = pd.read_json(path_or_buf=filename, lines=True)
return output 

问题是我希望每个评论类别都有自己的变量,比如一个名为“beauty_reviews”的数据框和另一个名为“pet_reviews”的数据框,分别包含从 reviews_beauty.json 和 reviews_pet.json 读取的数据。

【问题讨论】:

  • beauty_reviews, pet_reviews = [pd.read_json(path_or_buf="D:\\Library\\reviews_{}.json".format(i), lines=True) for i in review_categories]?
  • 如果review_categories的长度是n怎么办?
  • @akashkarothiya 我认为我不需要假设问题中没有说明的事情。在这种情况下,OP 可能需要编辑问题以表明这可能是一种可能性。
  • 明白你的意思,@Abdou 谢谢 :)
  • 谢谢@Abdou!无法相信解决方案会如此简单。掌心时刻!

标签: python for-loop


【解决方案1】:

我认为处理字典中的数据框很容易。试试下面的代码:

review_categories = ["beauty", "pet"]
reviews = {}

for review in review_categories:
     df_name = review + '_reviews' # the name for the dataframe
     filename = "D:\\Library\\reviews_{}.json".format(review)

     reviews[df_name] = pd.read_json(path_or_buf=filename, lines=True)

reviews 中,您将拥有一个带有相应数据框的密钥来存储数据。如果要检索数据,只需调用:

reviews["beauty_reviews"]

希望对你有帮助。

【讨论】:

    【解决方案2】:

    你可以先把文件打包成一个列表

    reviews = []
    review_categories = ["beauty", "pet"]
    for i in review_categories:
        filename = "D:\\Library\\reviews_{}.json".format(i)
        reviews.append(pd.read_json(path_or_buf=filename, lines=True))
    

    然后将你的结果解压成你想要的变量名:

    beauty_reviews, pet_reviews = reviews
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多