如何将 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 应用程序将视图移回其原点,并且键盘仍然可见