如何将 DataFrame 反转回其代码形式? [复制]

Posted

技术标签:

【中文标题】如何将 DataFrame 反转回其代码形式? [复制]【英文标题】:How do I reverse a DataFrame back to its Code form? [duplicate] 【发布时间】:2020-03-18 12:56:50 【问题描述】:

我希望能够将数据帧反转回其代码形式。

所以我们知道这个代码形式

dat=pd.DataFrame(dict(Date=['19/11/2012', '20/11/2012', '21/11/2012'],
                    A=[1,3,1],
                    B=[3,2,2],
                    C=[4,3,2],
                    D=[5,2,2],))

产生一个 DataFrame 正在创建的结果,如下所示:

+---+------------+---+---+---+---+
|   |    Date    | A | B | C | D |
+---+------------+---+---+---+---+
| 0 | 19/11/2012 | 1 | 3 | 4 | 5 |
| 1 | 20/11/2012 | 3 | 2 | 3 | 2 |
| 2 | 21/11/2012 | 1 | 2 | 2 | 2 |
+---+------------+---+---+---+---+

但是,我有没有办法将上面的 DataFrame 转换回它的 代码形式?在上面的示例中,我事先知道创建 DataFrame 的代码,但实际上我不会知道这些信息。

【问题讨论】:

您可以有多种“制作”数据框的方式。所以从输出到输入是一对多的关系。所以换一种方式来思考它:我怎样才能从数据框中获取信息,以便我可以再次制作相同的数据框?然后从众多选项中选择一个。 【参考方案1】:

试试pandas.DataFrame.to_dict():

>>> dat=pd.DataFrame(dict(Date=['19/11/2012', '20/11/2012', '21/11/2012'],
                    A=[1,3,1],
                    B=[3,2,2],
                    C=[4,3,2],
                    D=[5,2,2],))
>>> dat
         Date  A  B  C  D
0  19/11/2012  1  3  4  5
1  20/11/2012  3  2  3  2
2  21/11/2012  1  2  2  2

>>> dat.to_dict(orient = 'list')
'Date': ['19/11/2012', '20/11/2012', '21/11/2012'],
 'A': [1, 3, 1],
 'B': [3, 2, 2],
 'C': [4, 3, 2],
 'D': [5, 2, 2]

【讨论】:

还应该记住,对于DataFrame 的每个可能的最终状态,可以通过多种方式进行填充和操作以达到该最终状态。将DataFrame 转换为字典只会捕获最终状态。 @Haroldo_OK 同意。

以上是关于如何将 DataFrame 反转回其代码形式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Apache Spark 中反转排列 DataFrame

如何将 Pandas DataFrame 中字典的字符串表示形式转换为新列?

回到前台的 iPhone 应用程序将视图移回其原点,并且键盘仍然可见

在 Pandas DataFrame 中反转列顺序的大 O 复杂度是多少?

将放置的元素拖回其原始容器

如何将此 JSON 转换为 DataFrame?