在 Vscode 的 CSV 编辑器中它看起来像这样:
我添加换行符的代码:
lista=''
for i in value:
lista = lista + i + '\n'
stock_bodega.append(lista)
result = pandas.DataFrame(list(zip(stock_bodega,inv_bodega)), columns =headers)
result.to_csv(r''+funciones.RESULTS_PATH+FILE_NAME, header=True, index=False, sep=',', mode='w')
但是如果我用文本编辑器或 excel 打开 csv,它看起来像这样:
","0
0
0
","S
S
S
Excel:
预期输出:
原始 CSV 看起来像:
Col_1,Col_2
"foo
Foo
FOO","1 I
2 II
3 III"
"bar
Bar
BAR","a A
b B
c C"
"baz
Baz
BAZ","4 $
5 %
6 ^"
当被视为表格时,它看起来像:
+-------+-------+
| Col_1 | Col_2 |
+-------+-------+
| foo | 1 I |
| Foo | 2 II |
| FOO | 3 III |
+-------+-------+
| bar | a A |
| Bar | b B |
| BAR | c C |
+-------+-------+
| baz | 4 $ |
| Baz | 5 % |
| BAZ | 6 ^ |
+-------+-------+
我可以在 Python 中对这些数据进行建模,例如:
my_data = [
[ "Col_1" , "Col_2" ],
[ "foo\nFoo\nFOO" , "1 I\n2 II\n3 III" ],
[ "bar\nBar\nBAR" , "a A\nb B\nc C" ],
[ "baz\nBaz\nBAZ" , "4 $\n5 %\n6 ^" ],
]
我不使用 Pandas,所以我将展示使用 csv 模块将该数据结构写入 CSV:
import csv
with open("output_rows.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(my_data)
看到你的台词:
result = pandas.DataFrame(list(zip(stock_bodega,inv_bodega)), columns=headers)
我相信你可以轻松地将这个结构交给 Pandas,也许:
result = pandas.DataFrame(my_data[1:], columns=my_data[0])
如果我有一个值列表,这些值应该最终连接在一起作为列中的单个多行字段,例如:
col1_src = [
["foo", "Foo", "FOO"],
["bar", "Bar", "BAR"],
["baz", "Baz", "BAZ"],
]
然后,我会迭代这些列表并用换行符加入它们,例如:
col1_data = []
for line_values in col1_src:
col1_data.append("\n".join(line_values))
print(col1_data)
[
"foo\nFoo\nFOO",
"bar\nBar\nBAR",
"baz\nBaz\nBAZ",
]
和
col2_src = [
["1 I", "2 II", "3 III"],
["a A", "b B", "c C"],
["4 $", "5 %", "6 ^"],
]
col2_data = []
for line_values in col2_src:
col2_data.append("\n".join(line_values))
[
"1 I\n2 II\n3 III",
"a A\nb B\nc C",
"4 $\n5 %\n6 ^",
]
我可以传递给 csv.writer()(可能还有 Pandas):
with open("output_cols.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["Col_1", "Col_2"])
writer.writerows(list(zip(col1_data, col2_data)))
更新
关于数据在 Excel 中看起来不正确。我没有 Excel,但这是在其他几个电子表格应用程序中查看的数据:
无论如何,您可以尝试将行尾的
"\n"
更改为 "\r\n"
,尽管 CSV 规范声明两者都可以接受(因此 Excel 也应该接受)。
此外,还有这个主题,在 Excel 中导入带换行符的 CSV。