正在将 Python 个结果导出到 CSV
Exporting Python results to CSV
请放轻松,我是学生!
我无法将以下代码的结果导出到 CSV 文件中。对于每个循环(掷硬币),我需要将结果导出到一个名为 RESULTS.CSV 的 CSV 作为新的 ROW。
我已经尝试了在 Whosebug 上发布的大约四种不同的方法,但到目前为止都没有成功。我很难理解 syntax/logic。我讨厌问这个问题并且总是尽量避免它,但是有人介意向我展示一个简单的解决方案以便我可以剖析逻辑吗? (而不是参考文章,因为我已经尝试理解它们但遇到了麻烦)
版本:Python3.5
import random
flipcount=int(input("How many times should I flip a coin?\n###:"))
samples = [ random.randint(1, 2) for i in range(flipcount) ]
heads = samples.count(1)
tails = samples.count(2)
for s in samples:
msg = 'Heads' if s==1 else 'Tails'
print(msg)
print ("Heads count=%d, Tails count=%d" % (heads, tails))
这是一次失败的尝试...我相信我已经对这个主题进行了深入的研究并且让自己非常困惑...
import random
import csv
flipcount=int(input("How many times should I flip a coin?\n###:"))
samples = [ random.randint(1, 2) for i in range(flipcount) ]
heads = samples.count(1)
tails = samples.count(2)
writer = csv.writer(w)
for s in samples:
msg = 'Heads' if s==1 else 'Tails'
print(msg)
with open('some.csv', 'w', newline='') as f:
writer.writerows(msg)
print ("Heads count=%d, Tails count=%d" % (heads, tails))
这会奏效。现在不只是打印结果,而是将它们附加到列表 'data'。 'data' 的每一行将包含您的一个结果。然后将列表 'data' 写入 csv 文件,该文件看起来就像您请求的那样。
import csv
data = []
for s in samples:
msg = 'Heads' if s==1 else 'Tails'
data.append(msg)
with open('flip_file.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(data)
import pandas as pd
import numpy as np
#get the flipcount
flipcount = int(input("How many times should I flip a coin?\n###:"))
samples = np.random.randint(0, 2, size = flipcount)
#create a pandas dataframe
data = pd.DataFrame(["heads" if i == 1 else "Tails" for i in samples])
#create a csv file
data.to_csv("data.csv", index=False, header=False)
请放轻松,我是学生!
我无法将以下代码的结果导出到 CSV 文件中。对于每个循环(掷硬币),我需要将结果导出到一个名为 RESULTS.CSV 的 CSV 作为新的 ROW。
我已经尝试了在 Whosebug 上发布的大约四种不同的方法,但到目前为止都没有成功。我很难理解 syntax/logic。我讨厌问这个问题并且总是尽量避免它,但是有人介意向我展示一个简单的解决方案以便我可以剖析逻辑吗? (而不是参考文章,因为我已经尝试理解它们但遇到了麻烦)
版本:Python3.5
import random
flipcount=int(input("How many times should I flip a coin?\n###:"))
samples = [ random.randint(1, 2) for i in range(flipcount) ]
heads = samples.count(1)
tails = samples.count(2)
for s in samples:
msg = 'Heads' if s==1 else 'Tails'
print(msg)
print ("Heads count=%d, Tails count=%d" % (heads, tails))
这是一次失败的尝试...我相信我已经对这个主题进行了深入的研究并且让自己非常困惑...
import random
import csv
flipcount=int(input("How many times should I flip a coin?\n###:"))
samples = [ random.randint(1, 2) for i in range(flipcount) ]
heads = samples.count(1)
tails = samples.count(2)
writer = csv.writer(w)
for s in samples:
msg = 'Heads' if s==1 else 'Tails'
print(msg)
with open('some.csv', 'w', newline='') as f:
writer.writerows(msg)
print ("Heads count=%d, Tails count=%d" % (heads, tails))
这会奏效。现在不只是打印结果,而是将它们附加到列表 'data'。 'data' 的每一行将包含您的一个结果。然后将列表 'data' 写入 csv 文件,该文件看起来就像您请求的那样。
import csv
data = []
for s in samples:
msg = 'Heads' if s==1 else 'Tails'
data.append(msg)
with open('flip_file.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(data)
import pandas as pd
import numpy as np
#get the flipcount
flipcount = int(input("How many times should I flip a coin?\n###:"))
samples = np.random.randint(0, 2, size = flipcount)
#create a pandas dataframe
data = pd.DataFrame(["heads" if i == 1 else "Tails" for i in samples])
#create a csv file
data.to_csv("data.csv", index=False, header=False)