如何使用for循环命名数据帧?

时间:2017-03-23 13:29:02

标签: python for-loop

我想读取几个文件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分别。

2 个答案:

答案 0 :(得分:2)

我认为在字典中处理数据帧很容易。请尝试以下代码:

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["beauty_reviews"]

希望它有所帮助。

答案 1 :(得分:0)

您可以先将文件打包到列表中

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