导出的Python结果CSV

问题描述 投票:1回答:2

请去容易,我是个学生!

我无法将下面的代码的结果导出为CSV。对于每一个循环(抛硬币),我需要导出结果为CSV称为RESULTS.CSV作为新行。

我已经试过张贴在计算器上,但没有成功迄今大约四个不同的方法。我有困难的时候,理解语法/逻辑。我不喜欢问这个,总是尽量避免它,但会有人给我看一个简单的解决方案,这样我可以解剖的逻辑是什么? (而不是引用到文章中,我已经尝试去理解他们,但我有麻烦)

版本:3.5的Python

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))
python python-3.x csv random export-to-csv
2个回答
1
投票
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)

0
投票

这将工作。现在,而不是只打印您的结果,你把它们添加到列表中“数据”。 “数据”的每一行包含你的成果之一。然后你写的名单“数据”到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)
© www.soinside.com 2019 - 2024. All rights reserved.