关于datafram中表的问题

2024-09-29 21:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个练习,用python构建一个简单的机器学习算法。它是关于一个数据帧,内容是口袋妖怪战斗和赢家的一个样本。我想做的是:我有一个数据集,有超过50000个pokemon战斗的样本,我想计算他们每个人赢得战斗的次数,我想把这个数字插入一个包含每个pokemon一些数据的表中。代码是(在Jupyter笔记本中):

import pandas as pd
import numpy as np

pokemon = pd.read_csv('datas/pokemons_data.csv')
combates = pd.read_csv('datas/combats.csv')

pokemon

nome_corrigido = dict(zip(pokemon['#'], pokemon['Name']))
combates = combates[['First_pokemon', 'Second_pokemon', 
'Winner']].replace(nome_corrigido)
combates

primeiro = combates['First_pokemon'].value_counts()
segundo = combates['Second_pokemon'].value_counts()
vitorias = combates['Winner'].value_counts()
total_de_batalhas = primeiro + segundo
percentual_vitorias = vitorias/total_de_batalhas

percentual_vitorias = percentual_vitorias.sort_values()
percentual_vitorias.head()
vitorias.head()

pokemon['status_total'] = pokemon['Hit Points'] + pokemon['Attack'] + 
 pokemon['Defense'] + pokemon['Sp. Atk'] + \
 pokemon['Sp. Def'] + pokemon['Speed']

pokemon['vitorias'] = vitorias[0]
pokemon['percentual_vitorias'] = percentual_vitorias[0]

pokemon.iloc[:, [1, -3]].head()

from sklearn.model_selection import train_test_split

x = pokemon['status_total']
y = pokemon['percentual_vitorias']

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.25)

from sklearn.linear_model import LinearRegression

x_train = np.array(x_train).reshape(len(x_train) , 1)
y_train = np.array(y_train).reshape(len(y_train) , 1)
y_test = np.array(y_test).reshape(len(y_test) , 1)
x_test = np.array(x_test).reshape(len(x_test) , 1)

modelo_linear = LinearRegression()
modelo_linear.fit(x_train, y_train)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)

modelo_linear.predict(x)

问题: 1) 第一个问题发生在'pokemon['vitorias']=vitorias[0]行中 很明显,新列将只填充值“152”,这是“vitorias”数组中的第一个条目(如果没有[0],我将得到一个NaN,因为我正在将整个向量映射到数据集中的一个单元格)。我打算做的:在数据集中战斗.csv有一行和一列是一个口袋妖怪,第二个是另一个口袋妖怪和第三个是这场战斗的赢家。我计算了一些口袋妖怪赢的次数,并创建了这个数组,每个条目都是从最大数到最后一个数排序的赢数。152是mewtwo赢得战斗的次数。现在我想用这个数字来填充新的‘vitorias’栏,这个数字是152,只针对mewtwo,而另一个pokemon的胜利数对应于他们赢了多少次。我不知道怎么做。我的问题,我的大问题,是映射,例如,152,它是vitorias向量中的第一个条目,到另一个数据集“pokemon”数据集中“mewtwo”所在的对应行。也就是说,将vitorias向量中pokemon的获胜次数映射到pokemon表中相应的条目。你知道吗

2)在modelo生产线上_线性预测(十) 我得到:预期的2D数组,得到的是1D数组“ 为什么它需要一个二维数组?我该怎么修?你知道吗

这是口袋妖怪_数据.csv: This is the pokemons_data.csv 我想在“type2”一栏旁边的一个新的一栏里插入,比如说,布尔巴索的获胜次数。所以我在这个框架里战斗.csv地址:

This is the combats.csv 试着数一数每个口袋妖怪的获胜次数,由ID标识(数字1代表bulbasaur,数字2代表ivysaur,等等…)。你知道吗


Tags: csv数据testimportnptrain数字数组

热门问题