当前位置: 首页 > 知识库问答 >
问题:

要保存np.array,CSV将其保存为字符串而不是列表

越望
2023-03-14

我想将pandas数据帧保存为csv文件,问题是要将np.array转换为字符串。

我想将数组保存为数组,但在文档中找不到任何有用的内容。

sudoku_solution = [a for a in assignment if a > 0]


label = np.reshape(np.array(sudoku_solution*n_splits), 
                   (n_splits, len(sudoku_solution)))

df = pd.DataFrame(zip(label))

path = './data/SplitsLabel.csv'
try:
    df.to_csv(path_or_buf = path, 
              mode = 'a',
              header = False)

解数独=[123345894324321321](整数列表)

n_splits=3(整数)

最终结果应该是:

[123 345 894 324 321 321]

1,[123 345 894 324 321 321]

3,[123 345 894 324 321 321]

但现在的结果是:

0,"[123 345 894 324 321 321]"

1,"[123 345 894 324 321 321]"

3,"[123 345 894 324 321 321]"

我怎样才能去掉那些引语呢?

共有2个答案

宰父桐
2023-03-14

如果你有同样的问题,也许在这里登记会让你省去一些头痛。

这里发布的任何解决方案都无法解决我的问题,因此下面是解析字符串并将其转换为我需要的格式的代码:

   df = pd.read_csv(filepath_or_buffer = path_x,
                       header = None, 
                       names = ["i", "clauses"]) 

    #it is sad that I have to do that!
    df["clauses"] = df["clauses"].apply(lambda x: x.replace("[", ""))
    df["clauses"] = df["clauses"].apply(lambda x: x.replace("]", ""))
    df["clauses"] = df["clauses"].apply(lambda x: x.replace("\n", ""))
    df["clauses"] = df["clauses"].apply(lambda x: x.replace(",", ""))
    df["clauses"] = df["clauses"].apply(lambda x: x.split(" "))
    df["clauses"] = df["clauses"].apply(lambda x: np.array([int(i) for i in x]))

    cols = [x for x in range(120060)]
    df_x = pd.DataFrame(columns = cols)

    for i in range(len(df)):   
        df_x = df_x.append(pd.Series(data = {k: df["clauses"][i][k] for k in cols}),
                           ignore_index = True)

    df = pd.read_csv(filepath_or_buffer = path_y,
                       header = None, 
                       names = ["i", "label"]) 

    df_x.astype("int")
夏骏
2023-03-14

我怀疑,由于您的输出包含逗号,它可能正在输入引号以避免与格式冲突。您可以尝试将分隔符更改为选项卡,这样就不会发生冲突。如果分隔符不适合您,您还可以更改“引号”。

查看此链接了解更多信息:Pandas:use to_csv(),带有引号和逗号作为分隔符

 类似资料:
  • 我有这个。我想创建一个,它保存如下 但是通过这样做 问题是每个现在都保存为。例如,第3行是 对于那些怀疑论者,我尝试了,它是。第2列工作正常。 如何保存为每行,而不是?也就是说,我如何保存所有行的作为而不是?

  • 我使用DocumentBuilderFactory创建XML文件,如下所示:如何在Java中创建具有特定结构的XML文件。 我想将结果存储为java字符串,而不是将其保存到文件中。如何实现这一点。 重复:如何转换组织。w3c。多姆。文档对象到字符串?

  • 我有一个对象,它的父类可以设置_id字段,也可以不设置。 在这种情况下,没有设置_id字段,我将一个对象传递给 收集insertOne(对象) 通常情况下,mongo会为未指定的_id生成一个ObjectId(),但由于某种原因,每当_id由父类指定且未设置时,它会生成一个id,bug会将id保存为数据库中的字符串,而不是ObjectId。 我所经历的 {“name”:“name”} 预期: {“

  • 问题内容: 我在Ubuntu 11.10上使用带有节点的Redis 2.2.11,并且保存了一个字符串,但该字符串作为缓冲区返回。 这将在控制台上产生以下内容: 为什么它以字符串形式进入并以Buffer形式出现?缓冲区使调试非常困难! 在我的本地设置(带有Redis 2.2.14的MacOS 10.6)上,检索到的数据打印为字符串,就好了。我想找到一个在两个系统上都可以继续使用的解决方案。 更新:

  • 在我的模式文件中,我试图将类型属性设置为数组。正如这里所见 尽管出于某种原因,当我试图保存文档时,它会将文档保存为字符串,即使它是数组中的元素,它仍会返回字符串。这是我保存文档的代码; 这是在网站中查看的猫鼬模式https://i.stack.imgur.com/TACoo.png 我在mongoose方面不是最棒的,但是,我确信有些事情发生了,但是我没有将文档保存到任何其他地方,而是仍然保存一个

  • 在Julia0.4中,我有一个名为variablex的变量,其中