pandas - 如何复制熊猫数据框,使其成为 2 个变量?
问题描述
如何将一个 pandas 数据帧转换为 2 个,以便我可以在两个新创建的帧上独立操作?看起来当我使用“=”将它分配给一个新变量时,它正在做某种“通过引用进行评估”,而不是实际上复制数据帧。
这就是我所做的。我首先将 CSV 文件加载到 df_data
df_data = pd.read_csv(input_filename, usecols=colList, skiprows=2)
奇迹般有效。但是这个集合包含混合行(ML 项目的训练和测试数据),所以我想拆分这些集合。简而言之:复制数据集,然后在新创建的df_train_data
删除所有带有“test”标志的行,反之亦然:
df_train_data = df_data
df_train_data.drop(df_train_data[df_train_data['Usage']=='test'].index, inplace=True)
del df_train_data['Usage']
df_test_data = df_data
df_test_data.drop(df_test_data[df_test_data['Usage']=='train'].index, inplace=True)
del df_test_data['Usage']
现在这会产生一个错误。在我删除 中的“使用”列(上面的第 3 行)后df_train_data
,它也会从中消失df_data
,因此在第 6 行中产生错误,因为它在 中不存在df_test_data
。
我还看到我认为我只会删除的行df_train_data
已经完全消失了......
为什么?如何硬拷贝df_data
到 2 个数据帧中,然后独立处理这两个数据帧?
解决方案
您正在寻找复制功能:
df_train_data = df_data.copy()
推荐阅读
- excel - 使用 excel 的 Blueprism Web 自动化
- javascript - CreateJS(画布)Iframe
- microservices - Cumulocity:将二进制文件添加到微服务错误
- ios - 应用程序未显示在任何 iPhone 的外部显示扩展中
- php - 数据未存储在 PHP 站点的 mysql 数据库表中
- angular - Angular 单元测试模拟 paramMap 获取
- arrays - Pass array of arrays (or slice of slices) in Rust
- ios - 表格视图中的 iOS 图表:正确使用委托和全局缩放
- r - how to duplicate rows by condition and replace content in R
- android - Save Image in External Storage By using Picasso from Url , how to download image and show it in imageview