首页 > 解决方案 > 在 For 循环中重命名并创建数据框?

问题描述

我有一个列表['jan','feb'],我试图在 for 循环中循环以创建数据框

    name = ['jan','feb']
    for month in name:
       df = pd.DataFrame(name, columns = ['month'])

这是我得到的当前输出。

df

           month
        0    jan
        1    feb

我需要的是为列表中的值创建一个 df wrt。所以当列表中的第一个值被传递时'jan'

有没有办法在循环时重命名和创建 df?

一月

           month
        0    jan

二月

           month
        0    feb

标签: pythonpandasdataframefor-loop

解决方案


在您给出的示例中,您一遍又一遍地重新创建相同的数据框。你可以用一个简单的方法来达到同样的效果

   df = pd.DataFrame(name, columns = ['month'])

您没有在循环中使用循环变量month

我相信您想创建多个数据框,每个月一个。为此,您可以使用字典:

import pandas as pd

df_dict = {}

name = ['jan','feb']
for month in name:
    df_dict[month] = pd.DataFrame([month])

for month in name:
    print("key: ", month)    
    print("dataframe:")
    print(df_dict[month], end='\n\n')

导致

key:  jan
dataframe:
     0
0  jan

key:  feb
dataframe:
     0
0  feb

为了创建变量(虽然我不确定你为什么要这样做),你可以修改上面的代码如下:

import pandas as pd

name = ['jan','feb']
for month in name:
    globals()[month] = pd.DataFrame([month])

print(jan)
print(feb)

推荐阅读