python导入csv并利用其中数据画图

2024-05-16 16:22

1. python导入csv并利用其中数据画图

昨天手机看的,没看到你发的表格,抱歉。给你写个简单的。
import pandas
import matplotlib.pyplot as plt
#  sep这是是分割符,具体看你自己的文件分割是用什么,usecoles是取a,b,c三列
a_b_c = pandas.read_csv("这里写你的文件地址", sep="\t", usecols=[1,2,3])
# 取c在3000到10000的行
a = a_b_c[(a_b_c['c']>=3000) & (a_b_c['c']<=10000)]
a_col = a["a"]
b_col = a["b"]
plt.scatter(a_col, b_col)
plt.show()
流程大概是这样,具体需要细化的地方看官方文档或者百度查询。

python导入csv并利用其中数据画图

2. python 批量处理csv文件

csv文本本质是文本文件,你记住这一点。
因此可以用读写文本文件的方法来操作。

3. 如何使用python对csv/表格进行筛选和计算?

python2.5之后就自带sqlite3了,这种事情还是数据库在行~

如何使用python对csv/表格进行筛选和计算?

4. python处理csv数据怎么更有效率

因为python处理json比较方便,所以首先测试一下csv和json哪个快。
首先生成测试数据
# coding: utf-8import jsonimport csvimport randomfrom string import letterslow = 1e2 # 3-10位数字hi = 1e11cnt = 100000 # 10万条total = {}for _ in range(cnt):
total[str(random.randrange(low, hi))] = "".join(random.sample(letters, 10))with open("data.json", "w") as f:
f.write(json.dumps(total, ensure_ascii=False))with open("data.csv", "w") as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(total.items())

然后对比由这两者生成dict的速度
# coding: utf-8import jsonimport csvfrom time import clockt0 = clock()total1 = json.load(open("data.json"))t1 = clock()total2 = {}with open("data.csv") as f:
reader = csv.reader(f)
for k, v in reader:
total2[k] = vt2 = clock()print "json: %fs" % (t1 - t0)print "csv: %fs" % (t2 - t1)

输出是:
json: 0.109953s
csv: 0.066411s

果然csv还是蛮快的,那我们就用它吧。
接下来解决更新问题。我不知道题主对于重复项需要怎么处理,所以都写了。
# 先生成数据,同之前的做法。low = 1e2hi = 1e11cnt = 100000new = {}for _ in range(cnt):
new[str(random.randrange(low, hi))] = "".join(random.sample(letters, 10))# 找出重复项,因为是随机生成的数据,所以恰好没有重复项duplicate = {k:v for k, v in new.items() if k in total}# 输出重复项print(json.dumps(duplicate, ensure_ascii=False, indent=4))# 1. 如果重复项是用new覆盖totaltotal.update(new)# 2. 如果是保留totalnew.update(total)total = new# 然后再写回csv文件中with open("data.csv", "w") as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(total.items())

至于运行时间,如果不算上输出重复项的时间,不到0.5s。算上的话大概也就0.8s。

5. python 读取多个csv文件中某一列,并生成一个新csv文件

csv文件应该是用逗号分隔得才对,否则怎么算作是csv文件。楼主你开玩笑吧。否则你这只是一个普通的文本文件。如果是真正的csv文件,我只说一点,python里面有csv模块,专门处理csv文件。如果是空格分割应该也可以,建议你,看一下python的csv模块的API,蛮简单的代码,其实如果不用的话自己写也可以。不是很复杂。代码片段如下:
def deal_file(file_in, file_out)    with open(file_in, 'r') as f_in:        with open(file_out, 'w') as f_out:            for line in f_in:                f_out.write(line.split(' ')[2] + '\n')之后你可以将所有的输入文件放到一个列表里面,进行迭代调用这个函数就可以了。

python 读取多个csv文件中某一列,并生成一个新csv文件

6. python处理csv数据怎么更有效率

因为python处理json比较方便,所以首先测试一下csv和json哪个快。
首先生成测试数据
# coding: utf-8
import json
import csv
import random
from string import letters

low = 1e2 # 3-10位数字
hi = 1e11
cnt = 100000 # 10万条

total = {}
for _ in range(cnt):
total[str(random.randrange(low, hi))] = "".join(random.sample(letters, 10))

with open("data.json", "w") as f:
f.write(json.dumps(total, ensure_ascii=False))

with open("data.csv", "w") as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(total.items())


然后对比由这两者生成dict的速度
# coding: utf-8
import json
import csv
from time import clock

t0 = clock()

total1 = json.load(open("data.json"))

t1 = clock()

total2 = {}
with open("data.csv") as f:
reader = csv.reader(f)
for k, v in reader:
total2[k] = v
t2 = clock()

print "json: %fs" % (t1 - t0)
print "csv: %fs" % (t2 - t1)


输出是:
json: 0.109953s
csv: 0.066411s


果然csv还是蛮快的,那我们就用它吧。
接下来解决更新问题。我不知道题主对于重复项需要怎么处理,所以都写了。
# 先生成数据,同之前的做法。
low = 1e2
hi = 1e11
cnt = 100000
new = {}
for _ in range(cnt):
new[str(random.randrange(low, hi))] = "".join(random.sample(letters, 10))

# 找出重复项,因为是随机生成的数据,所以恰好没有重复项
duplicate = {k:v for k, v in new.items() if k in total}
# 输出重复项
print(json.dumps(duplicate, ensure_ascii=False, indent=4))

# 1. 如果重复项是用new覆盖total
total.update(new)
# 2. 如果是保留total
new.update(total)
total = new
# 然后再写回csv文件中
with open("data.csv", "w") as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(total.items())


至于运行时间,如果不算上输出重复项的时间,不到0.5s。算上的话大概也就0.8s。

7. python 如何将csv数据按行顺序抽取形成新的csv 原本csv对应数据抽取后的也要删除掉

这个是每隔4行取一行,如果不是这个逻辑,你修改框部分就可以了

python 如何将csv数据按行顺序抽取形成新的csv 原本csv对应数据抽取后的也要删除掉

8. 如何用python把多个csv文件数据处理后汇总到新csv文件

可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循环读取,在对读取到的数据处理一下,判断大于1000米的个数,大循环外面定义两广序列,存放文件名和个数,大循环结束后将两广数组组成Dataframe保持到一个新csv里,思路大概是这样。不明白的可以继续问。