重命名并在For循环内创建数据框?

时间:2019-11-15 07:37:19

标签: python pandas dataframe for-loop

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

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

这是我得到的当前输出。

df

           month
        0    jan
        1    feb

我需要的是为列表中的值创建dfw.r.t。 因此,当列表中的第一个值通过'jan'时。

有没有一种方法可以在循环时重命名和创建df?

jan

           month
        0    jan

二月

           month
        0    feb

1 个答案:

答案 0 :(得分:0)

在您给出的示例中,您将一遍又一遍地重新创建相同的数据框。您可以通过简单的

来实现相同的目的
   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)