Python 如何将多个包含值-1,0,1的列组合成一列向量和一个向量?

Python 如何将多个包含值-1,0,1的列组合成一列向量和一个向量?,python,pandas,tensorflow,machine-learning,Python,Pandas,Tensorflow,Machine Learning,我正在尝试开发一个简单的ML模型,用于根据两队中的角色状态预测两队比赛的结果。单个角色由100多列表示,其值为-1、0或1,表示该角色是在对方球队中,不是在游戏中,还是在“友好”球队中。我有大约60k场游戏的数据。我已经成功地将数据分为标签(无论游戏结果是赢还是输)和功能(游戏中的角色),但是功能被分为100+列。我希望有一个功能栏,由代表游戏中角色的向量组成,但我在熊猫文档中没有找到这样的命令 这是我当前在调用后得到的输出: for feature_batch, label_batch in

我正在尝试开发一个简单的ML模型,用于根据两队中的角色状态预测两队比赛的结果。单个角色由100多列表示,其值为-1、0或1,表示该角色是在对方球队中,不是在游戏中,还是在“友好”球队中。我有大约60k场游戏的数据。我已经成功地将数据分为标签(无论游戏结果是赢还是输)和功能(游戏中的角色),但是功能被分为100+列。我希望有一个功能栏,由代表游戏中角色的向量组成,但我在熊猫文档中没有找到这样的命令

这是我当前在调用后得到的输出:

for feature_batch, label_batch in train_ds.take(1):
  print('Every feature:', list(feature_batch.keys()))

Every feature: ['0', '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '1', '0.9', '0.10', '0.11', '1.1', '0.12', '0.13', '0.14', '-1.1', '0.15', '0.16', '0.17', '-1.2', '0.18', '0.19', '1.2', '0.20', '0.21', '1.3', '0.22', '0.23', '0.24', '1.4', '0.25', '0.26', '0.27', '0.28', '0.29', '-1.3', '0.30', '0.31', '0.32', '0.33', '0.34', '0.35', '0.36', '0.37', '0.38', '0.39', '0.40', '0.41', '0.42', '0.43', '0.44', '0.45', '0.46', '0.47', '0.48', '0.49', '0.50', '0.51', '0.52', '0.53', '0.54', '0.55', '0.56', '0.57', '0.58', '0.59', '0.60', '0.61', '0.62', '0.63', '0.64', '-1.4', '0.65', '0.66', '0.67', '0.68', '0.69', '0.70', '0.71', '0.72', '0.73', '0.74', '0.75', '0.76', '0.77', '-1.5', '0.78', '0.79', '0.80', '0.81', '0.82', '0.83', '0.84', '0.85', '0.86', '0.87', '0.88', '0.89', '0.90', '0.91', '0.92', '0.93', '0.94', '0.95', '0.96', '0.97', '0.98', '0.99', '0.100', '0.101', '0.102']

感谢您提供的所有建议

许多Python的ML库本机使用数据帧,因此,对于这些,您可以传递整个过程:

from sklearn.linear_model import LogisticRegression
X = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
y = pd.Series([0, 1, 0])

model = LogisticRegression()
model.fit(X, y)
print(model.coef_)

[[-1.87654483e-05  7.42492539e-05]]
我看到您标记了TensorFlow-为此,您可以使用
tf.data.dataset.from\u tensor\u slices

import tensorflow as tf
dataset = tf.data.Dataset.from_tensor_slices((X.values, y.values))

Python的许多ML库都是以数据帧为本机工作的,因此对于这些库,您可以传递整个过程:

from sklearn.linear_model import LogisticRegression
X = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
y = pd.Series([0, 1, 0])

model = LogisticRegression()
model.fit(X, y)
print(model.coef_)

[[-1.87654483e-05  7.42492539e-05]]
我看到您标记了TensorFlow-为此,您可以使用
tf.data.dataset.from\u tensor\u slices

import tensorflow as tf
dataset = tf.data.Dataset.from_tensor_slices((X.values, y.values))

有时,您可以“欺骗”
pandas
将复杂对象存储在一个列中,但通常最好使用单独的列来存储它们。有什么特别的原因让你不想在这里出现吗?嗯,我当时的想法是,对于每一次赢/输,模型将了解哪些角色组合会产生更高的获胜机会。我可以想象这将如何处理向量,但不是单个列,但我可能忽略了一种更简单的方法。有时,您可以“欺骗”
pandas
,将复杂对象存储在单个列中,但通常最好使用单独的列。有什么特别的原因让你不想在这里出现吗?嗯,我当时的想法是,对于每一次赢/输,模型将了解哪些角色组合会产生更高的获胜机会。我可以想象这将如何处理向量,但不是单个列,但我可能忽略了一个更简单的方法。