我想将熊猫数据帧另存为csv文件,问题是to_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)
solution_sudoku = [123,345,894,324,321,321](整数列表)
n_splits = 3(整数)
最终结果应该类似于:
0,[123 345 894 324 321 321]
1,[123345894324321321321]
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]”
如何去除那些引号?
答案 0 :(得分:0)
我怀疑由于您的输出中包含逗号,因此可能输入引号来避免与格式冲突。您可以尝试将定界符更改为选项卡,这样就不会发生这种冲突。如果分隔符对您不起作用,您还可以更改“引号”。
查看此链接以获取更多信息:Pandas: use to_csv() with quotation marks and a comma as a seperator
答案 1 :(得分:0)
如果您遇到同样的问题,也许可以通过签入here来减轻您的头痛。
此处发布的所有解决方案都无法解决我的问题,因此这是解析字符串并将其转换为所需格式的代码:
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")