我有一个列表['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
答案 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)