python - 在 Python 中根据 .csv 文件绘制正态分布

标签 python python-2.7 csv numpy matplotlib

以下脚本绘制给定数据的正态分布。

import numpy as np
import scipy.stats as stats
import pylab as pl

h = sorted ([0.9, 0.6, 0.5, 0.73788,...]) #Data that I would like to change

fit = stats.norm.pdf(h, np.mean(h), np.std(h))  
pl.plot(h,fit,'-o')
pl.show()    

我想找到如何绘制从 .csv 文件获取的数据,而不必手动引入它。假设所需的数据位于给定 .csv 文件的第二列中,我知道执行类似隔离数据的操作的方法是创建一个中间文件,但也许这甚至没有必要。

with open('infile.csv','rb') as inf, open('outfile.csv','wb') as outf:
    incsv = csv.reader(inf, delimiter=',')
    outcsv = csv.writer(outf, delimiter=',')
    outcsv.writerows(row[1] in incsv)

无论如何,基本上我的两个问题是,
- 我是否可以将 .csv 的第二列正确写入新的 .csv 文件?
- 如何合并这两个脚本,以便可以用第一个脚本中的静态数据替换 .csv 文件列中的数据?

最佳答案

将数据写回文件似乎非常迂回,大概是稍后再将其读回。为什么不创建数据列表?

def import_data(filename):
    """Import data in the second column of the supplied filename as floats."""
    with open(filename, 'rb') as inf:
        return [float(row[1]) for row in csv.reader(inf)]

然后您可以调用此函数来获取您想要绘制的数据

h = sorted(import_data('infile.csv'))

对于您的问题“我能否正确地将 .csv 的第二列写入新的 .csv 文件?”,答案是:测试并找出答案。

关于python - 在 Python 中根据 .csv 文件绘制正态分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23244443/

相关文章:

python - 如何在使用 pandas.read_csv 读取 csv 文件时将 pandas.dataframe 中的元素转换为 np.float?

python - 在 TensorFlow 中导入巨大的非图像数据集

postgresql - Python PostgreSQL 使用 copy_from 将对象列表复制到表中

python - BaseSpider 和 CrawlSpider 的区别

python - 将表拆分为小型 Python

python - 哪个数据库可以存储非常大的嵌套 Python 字典?

Gale-shapley算法的python实现

Python __doc__ 行为 2.6 与 2.7

python - 使用 pandas read_csv 时出现 urllib.error.URLError

Mysql UPDATE JOIN 使用来自 csv 的 LOAD DATA INFILE