将元组列表保存到 python 中的 csv 文件
Save a list of tuple to csv file in python
我有一个元组列表,如下所示:
data = [(1633098324445950024, 139.55, 15, [14, 37, 41]),
(1633098324445958000, 139.55, 100, [14, 41]),
(1633098324445958498, 139.55, 60, [14, 37, 41]),
(1633098324446013523, 139.55, 52, [14, 37, 41]),
(1633098324472392943, 139.555, 100),
(1633098324478972256, 139.555, 100)]
我正在尝试将其保存在 csv
文件中:
def save_csv(data, path, filename):
with open(os.path.join(path, str(filename) + '_data.csv'), "w") as outfile:
outfile.write("\n".join(f"{r[0]},{r[1]},{r[2]},{r[3]}" for r in data))
save_csv(data, path, filename)
我得到 IndexError
:
outfile.write("\n".join(f"{r[0]},{r[1]},{r[2]},{r[3]}" for r in data))
IndexError: tuple index out of range
我希望结果如下所示:
import csv
data = [(1633098324445950024, 139.55, 15, [14, 37, 41]),
(1633098324445958000, 139.55, 100, [14, 41]),
(1633098324445958498, 139.55, 60, [14, 37, 41]),
(1633098324446013523, 139.55, 52, [14, 37, 41]),
(1633098324472392943, 139.555, 100),
(1633098324478972256, 139.555, 100)]
with open("csv.csv", "w") as f:
csv_writer = csv.writer(f)
for mytuple in data:
csv_writer.writerow(mytuple)
您有可变数量的列 - r[3]
不会总是存在。这是 pandas 的一个很好的用例,它将根据需要添加默认值。我有点微妙,但 pandas 也会引用最后一列,以便稍后的 reader 会知道忽略其嵌入的逗号。
import pandas as pd
data = [(1633098324445950024, 139.55, 15, [14, 37, 41]),
(1633098324445958000, 139.55, 100, [14, 41]),
(1633098324445958498, 139.55, 60, [14, 37, 41]),
(1633098324446013523, 139.55, 52, [14, 37, 41]),
(1633098324472392943, 139.555, 100),
(1633098324478972256, 139.555, 100)]
pd.DataFrame(data).to_csv("test.csv")
我有一个元组列表,如下所示:
data = [(1633098324445950024, 139.55, 15, [14, 37, 41]),
(1633098324445958000, 139.55, 100, [14, 41]),
(1633098324445958498, 139.55, 60, [14, 37, 41]),
(1633098324446013523, 139.55, 52, [14, 37, 41]),
(1633098324472392943, 139.555, 100),
(1633098324478972256, 139.555, 100)]
我正在尝试将其保存在 csv
文件中:
def save_csv(data, path, filename):
with open(os.path.join(path, str(filename) + '_data.csv'), "w") as outfile:
outfile.write("\n".join(f"{r[0]},{r[1]},{r[2]},{r[3]}" for r in data))
save_csv(data, path, filename)
我得到 IndexError
:
outfile.write("\n".join(f"{r[0]},{r[1]},{r[2]},{r[3]}" for r in data))
IndexError: tuple index out of range
我希望结果如下所示:
import csv
data = [(1633098324445950024, 139.55, 15, [14, 37, 41]),
(1633098324445958000, 139.55, 100, [14, 41]),
(1633098324445958498, 139.55, 60, [14, 37, 41]),
(1633098324446013523, 139.55, 52, [14, 37, 41]),
(1633098324472392943, 139.555, 100),
(1633098324478972256, 139.555, 100)]
with open("csv.csv", "w") as f:
csv_writer = csv.writer(f)
for mytuple in data:
csv_writer.writerow(mytuple)
您有可变数量的列 - r[3]
不会总是存在。这是 pandas 的一个很好的用例,它将根据需要添加默认值。我有点微妙,但 pandas 也会引用最后一列,以便稍后的 reader 会知道忽略其嵌入的逗号。
import pandas as pd
data = [(1633098324445950024, 139.55, 15, [14, 37, 41]),
(1633098324445958000, 139.55, 100, [14, 41]),
(1633098324445958498, 139.55, 60, [14, 37, 41]),
(1633098324446013523, 139.55, 52, [14, 37, 41]),
(1633098324472392943, 139.555, 100),
(1633098324478972256, 139.555, 100)]
pd.DataFrame(data).to_csv("test.csv")