【问题标题】:Converting tuples to strings for the features in a machine learning study将元组转换为机器学习研究中特征的字符串
【发布时间】:2019-05-05 05:21:50
【问题描述】:

我有我想在机器学习算法中使用的功能的 DataFrame。数据框如下所示:

features dataframe 我想将此数据框用作 ML 算法(例如随机森林或 ANN)的输入。但我得到的错误 ValueError: 使用序列设置数组元素。

我认为这是因为元组。有什么方法可以将所有元组转换为字符串?

【问题讨论】:

  • 如果t 是你的元组,你刚刚试过str(t) 吗?
  • 你能给我们提供一个元组的例子吗
  • 欢迎,请参考How do I ask a good question?,并为我们提供格式良好的问题和可重复的示例。

标签: python pandas machine-learning scikit-learn


【解决方案1】:

我的 Python 确实生锈了,但这是我的尝试:

假设你有一个元组,tup:

tup = (1,2,3,4)

有一个特殊的运算符'*',它解包元组(还有一个双星'**')。

您可以使用它来解包您的元组,然后将它们保存到列表中:

list_ = [*tup]

非常简单!

现在如果你想把 list_ 变成一个字符串,有无数种选择:

string_ = "".join(list_)

“”表示加入列表时不使用任何分隔符。

希望能做到!

编辑:不需要中间步骤,你可以做"".join(tup),但我怀疑你需要一个列表而不是一个字符串

【讨论】:

  • 1.加入不需要列表, 2. 可迭代元素必须是字符串。 3. 您的语法无效,并且 4. 这没有回答问题。
  • 1.看我的编辑,2 你是什么意思? 3.好的大声笑,修复它。 4. 是的,他说转换所有元组,但他没有提供任何代码,我的回答只是想向他展示这样做的方法,我相信他可以做剩下的事情。
  • @coldspeed 另外,不要讨厌我,我只是想获得一些声誉,这样我就可以参与一些事情......哎呀
【解决方案2】:

从像你这样的 df 开始:

t1 = (1,2)
t2 = (3,4)
cols = ['A', 'B']
rows = []
for a in range(2):
    rows.append([t1,t2])
df = pd.DataFrame(rows, columns=cols)
df


    A   B
0   (1, 2)  (3, 4)
1   (1, 2)  (3, 4)

我认为第一个问题是您的列,您需要两倍的列。重置列,如:

df.columns =  [(x+"L", x+'R') for x in df.columns]
df

    (AL, AR) (BL, BR)
0   (1, 2)  (3, 4)
1   (1, 2)  (3, 4)

现在您可以像这样简单地编写一个循环:

newRows = []
oneRow = []
for index, row in df.iterrows():
    oneRow = []
    for a in range(len(row)):
        oneRow += list(row[a])
        oneRow = [str(x) for x in oneRow] #<-  this changes everything to strings
    newRows.append(oneRow)
newRows

[['1', '2', '3', '4'], ['1', '2', '3', '4']]

对列做同样的事情:

newCols = []
for a in range(len(df.columns)):
    newCols += list(df.columns[a])
newCols

['AL', 'AR', 'BL', 'BR']

然后将它们重新组合在一起:

dfNew = pd.DataFrame(newRows, columns=newCols)
dfNew

    AL  AR  BL  BR
0   1   2   3   4
1   1   2   3   4

对我来说,我认为一定有更好的方法,甚至可能是 1-liner,但这个方法有效,您可以继续进行分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2020-07-01
    • 2019-07-14
    • 1970-01-01
    • 2021-11-18
    • 2012-03-28
    • 2015-05-13
    相关资源
    最近更新 更多