python - Python DataFrames concat 或 append 问题
问题描述
我对 Python 中的数据框有疑问。我正在尝试将某些行复制到新的数据框中,但我无法弄清楚。
有2个数组:
口袋妖怪数据 # HP 攻击防御 Sp。Atk Sp。默认速度 0 1 45 49 49 65 65 45 1 2 60 62 63 80 80 60 2 3 80 82 83 100 100 80 3 4 80 100 123 122 120 80 4 5 39 52 43 60 50 65 ……………………………… 795 796 50 100 150 100 150 50 796 797 50 160 110 160 110 110 797 798 80 110 60 150 130 70 798 799 80 160 60 170 130 80 799 800 80 110 120 130 90 70 800 行 × 7 列
战斗数据 First_pokemon Second_pokemon 获胜者 0 266 298 1 1 702 701 1 2 191 668 1 3 237 683 1 4 151 231 0 ……………… 49995 707 126 0 49996 589 664 0 49997 303 368 1 49998 109 89 0 49999 9 73 0 50000 行 × 3 列
我用列创建了第三个数据集:
输出1 HP0 攻击0 防御0 Sp。Atk0 Sp。Def0 Speed0 HP1 Attack1 Defense1 Sp。Atk1 Sp。Def1 速度 1 获胜者
我想要做的是将属性从pokemon_data复制到output1中的顺序从contrasts_data。
HP0 和 HP1 分别是第一个 Pokemon 的 HP 和第二个 Pokemon 的 HP。
我想在带有 TensorFlow 的神经网络中使用这些数据来预测 Pokemon 会赢得什么。
解决方案
对于这种类型的争吵,您应该首先“融化”或“整理”,combats_data
以便每个 ID 都有自己的行,然后对两个数据帧进行“连接”或“合并”。
您没有提供最低限度的可重现示例,所以这是我的:
import pandas as pd
df1 = pd.DataFrame({'id': [1,2,3,4,5],
'var1': [10,20,30,40,50],
'var2': [15,25,35,45,55]})
df2 = pd.DataFrame({'id1': [1,2],
'id2': [3,4],
'outcome': [1,4]})
df2tidy = pd.melt(df2, id_vars=['outcome'], value_vars=['id1', 'id2'],
var_name='name', value_name='id')
df2tidy
# outcome name id
# 0 1 id1 1
# 1 4 id1 2
# 2 1 id2 3
# 3 4 id2 4
output = pd.merge(df2tidy, df1, on='id')
output
# outcome name id var1 var2
# 0 1 id1 1 10 15
# 1 4 id1 2 20 25
# 2 1 id2 3 30 35
# 3 4 id2 4 40 45
然后你可以在outcome
.
(顺便说一句,您应该outcome
输入 0 或 1(对于 pokemon1 与 pokemon2)而不是获胜者的实际 ID。)
推荐阅读
- javascript - 如何在节点js的数组中输入不同的数据类型
- c# - 如何在 Xamarin Forms 中使用经过身份验证的用户访问受 Firebase 保护的实时数据库
- java - 同时根据多个属性值过滤数据集?
- asp.net-core - 服务器 blazor 应该如何使用来自 Razor 类库的捆绑范围 css 文件?
- asp.net-core - 无法从剃刀页面中的列表更新用户身份角色
- xml - 使用 Saxon 和 xslt Stylesheet 合并两个 xml 文件并获得一个 xml 输出
- python - 如何在烧瓶中传递和显示图像列表
- python-3.x - 返回重定向不会传递参数
- python-3.x - django admin filter_list by manytomany 归档
- javascript - 如何在 React 中更改 OrbitControl 目标?