如何将Dataframe存储在字典中

4

我有一个Dataframe,使用for循环逐列扩展。

现在,我想以某种方式存储演进DF的某些“阶段”,我认为最好使用字典。

为了给你一个形象的描述:

df_dict={}
for i in range(1,13):
    df=pd.read_csv('./test.csv').iloc[:,0:i*4-1]

所以我希望把这个作为数据框的“第一阶段”存储起来:

col1     col2     col3     col4
  1        3        5        7
  2        4        6        8

在“第二阶段”中:
col1     col2     col3     col4     col5     col6     col7     col8
  1        3        5        7        9        11       13       15
  2        4        6        8        10       12       14       16    

第三个阶段包含12列:

col1     col2     col3     col4     col5     col6     col7     col8     ...
  1        3        5        7        9        11       13       15     ...
  2        4        6        8        10       12       14       16     ...

持续到第12阶段,包含48列。

总的来说,我想在字典中存储这些阶段,每个新阶段都有4列更多。 并且我需要能够稍后单独使用这些不同的数据框。

我知道

df_dict.update({i, df})

由于DFs可变,所以这种方法不起作用,但我没有找到解决方法。

我是Python的新手,请对我温柔点。 谢谢!

编辑: 我不是在寻找如何获取变量变量的想法,因为我已经提到要使用Dict,但我正在寻找一种将我的Dataframe存储在Dict中的方法。


1
你试过使用“df.to_dict()”了吗? - Carp-Bezverhnii Maxim
我理解您想将这个数据框添加到字典中,因此您可以使用df.to_dict()将数据框转换为字典,然后更新您的字典。 - Carp-Bezverhnii Maxim
可能是重复的问题:如何创建可变数量的变量? - G. Anderson
1个回答

5
我认为你需要在循环中为每个DataFrame赋值:
df_dict={}
for i in range(1,13):
    df=pd.read_csv('./test.csv').iloc[:,0:i*4-1]
    df_dict[i] = df

另一种解决方案是使用 字典推导式

df_dict = {i: pd.read_csv('./test.csv').iloc[:,0:i*4-1] for i in range(1,13)}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接