python-3.x - 如何用另一个数据框替换一个数据框?
问题描述
我传入一个数据框来执行各种其他数据清理过程。这样做时,如果没有另一个数据框,我将无法完成其中一个过程。
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 的所有内容?
解决方案
我理解目标是在确保不会通过此操作更改的同时分配 to 的内容df2
。这似乎可以做到,但可能不是最优雅的方式。与您尝试的主要区别是删除索引和列df1
id(df1)
df1.drop(df1.columns, axis=1, inplace=True)
df1.drop(df1.index, inplace=True)
df1[df2.columns] = df2[df2.columns]
df1.head()
process_data
具有可以这样使用的功能可能更好的设计
df1 = process_data(df1)
然后 df1 可以在您的函数内部更改,但是当从函数返回时,它被分配给同一个变量
推荐阅读
- c++ - 如何使用 bat 文件在 Visual Studio 中设置 DLL 文件的路径?
- jenkins - 如何使用ansible中的变量从组中选择特定项目
- r - 在R中使用estimateR(素食包)的alpha多样性指数
- jquery - 反向鼠标移动播放视频
- docker - Apache 仅显示 /var/www/html 的内容,但不显示任何其他网站(错误 403)
- java - Spring Boot - 如何区分@PathVariable 的验证和查询参数(@RequestParam)
- kotlin - Kotlin 映射/列表可空类型安全
- django - DoesNotExist:获取“组匹配查询不存在”。保存 Django 的 UserCreationForm 时出错
- angular - 单击 Firebase 中过滤的数据时出现 Angular 问题
- java - Spring Data JpaRepository 批处理 .save() 然后 .flush() 导致重复键异常