【发布时间】:2021-02-18 13:34:52
【问题描述】:
我传入一个数据框来执行各种其他数据清理过程。这样做时,如果没有另一个数据框,我将无法完成其中一个过程。
data= {'ID':[1,2], '2020-11-01' :[10,15], '2020-11-02':[43,35]}
df1 = pd.DataFrame.from_dict(data)
df1.head()
ID 2020-11-01 2020-11-02
0 1 10 43
1 2 15 35
我需要将这些日期转换为行,以便使用融化
df2 = df1.melt(id_vars = ["ID"], var_name = "ReportDate", value_name= "Units")
df2.head()
ID ReportDate Units
0 1 2020-11-01 10
1 2 2020-11-01 15
2 1 2020-11-02 43
3 2 2020-11-02 35
现在我需要从 df1 中删除所有内容,并需要将 df2 的详细信息捕获到 df1。
我尝试从 df1 中删除所有列(使用 inplace=True),然后这样做
df1["ID"] = df2["ID"]
df1["ReportDate"] = df2["ReportDate"]
df1["Units] = df2[Units]
df1.head()
ID ReportDate Units
0 1 2020-11-01 10
1 2 2020-11-01 15
但我最终只有 2 行,因为 df1 的先前形状是 2x3
我需要我的输出看起来像
df1.head()
ID ReportDate Units
0 1 2020-11-01 10
1 2 2020-11-01 15
2 1 2020-11-02 43
3 2 2020-11-02 35
如何让 df1 拥有 df2 的所有内容?
【问题讨论】:
-
你最终的 df1 应该是什么样的?在显示早期阶段时,请像调用
f1.head()一样显示。 -
为什么
df1 = df2不能满足您的要求?或import copy df1 = copy.deepcopy(df2) -
@noah 我已经更新了 head 以及我的结果应该是什么样子
-
@piterbarg 因为这不会更新现有的 df1,它会创建一个新的数据框对象并且无法传递我的课程。我使用 inplace=true 对一个数据帧进行了所有更改,我还没有完成复制部分,让我试试
-
我明白了。这似乎是一个相关的讨论stackoverflow.com/questions/39783570/…
标签: python-3.x pandas dataframe replace