我有一个csv文件,其中包含100,000个IQ值。智商的范围从34-165,所以显然会有很多数字是相同的。我正在尝试编写能够告诉我有多少数字相同的代码。例如:有11个智商为49的人,120个智商为62的人。我认为使用列表最简单,但我是初学者,仍在学习。所以只是想知道哪些代码块能够计算出来?计算某个特定数字在csv文件中的数量
回答
您的问题整齐地分成两部分:读取csv并处理结果。
如果您提供了关于csv的更多信息,或者到目前为止尝试过的代码示例,那么Stack Overflow的优秀人员将会更加轻松,但我们仍然可以尝试使用我们的有。
对于在CSV阅读,从这里开始: https://docs.python.org/2/library/csv.html
如果CSV是逗号分隔的号码列表(120,62,37 ...),这是一个非常简单的操作。如果它有更多的信息(例如,如果每行都是“姓名,年龄,性别,智商,出生国......”),它需要多一点工作,但仍然很容易实现。
我首先假设你的文件是一个简单的数字列表,用逗号分隔。
这样:
import csv
with open('yourfile.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for row in reader:
# there is only one row!
# it is a list of numbers (as string values)
# ie, ['34','35','120','91'...]
for x in xrange(34,166):
# x starts at 34, and iterates to 166-1 = 165
print x, row.count(str(x))
# 'str(x)' converts the int to a string
# 'count' counts the number of times that string is present in the list 'row'
您也可以在值添加到字典中供以后使用:代替print语句,定义一个字典 - “IQS = {}” 和:
iqs[x] = row.count(str(x))
iqs[120]
10 #output
将其组合在一起(删除评论):
现在你可以随意收回你的价值观
import csv
with open('yourfile.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
iqs= {}
for row in reader:
for x in xrange(34,166):
iqs[x] = row.count(str(x))
如果CSV是更复杂,你可以做两个循环,第一解析CSV(即创建一个列表,而不是“行”),并从34至165第二迭代:
import csv
with open('yourfile.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
lst= []
for row in reader:
#parse row
lst.append(iq_value_from this row)
iqs= {}
for x in xrange(34,166):
iqs[x] = lst.count(str(x))
最后,如果您希望绘制结果,它可能是创建两个列表更加有用,并与matplotlib包(http://matplotlib.org/users/pyplot_tutorial.html)
import csv
import matplotlib.pyplot as plt
with open('yourfile.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
lst = []
x_values= []
y_values=[]
for row in reader:
#parse row
lst.append(iq_value_from this row)
iqs= {}
for x in xrange(34,166):
x_values.append(x)
y_values.append(lst.count(str(x)))
plt.plot(x_values,y_values)
plt.show()
由于某种原因,我虽然你说你使用的是python,但实际上你没有指定语言....哦。这里是一个python解决方案.... – codeMonkey
对不起,我最后在评论中指定了。谢谢你的帮助。 –
至于至极类型的集合使用的绘制出来,一世 建议使用通用字典,使用IQ值作为关键字,总和作为值。阅读您的CSV并增加每个智商的价值。
您可以用每个有效的IQ值预填充Dictionary或在运行中添加条目,检查给定IQ是否存在Dictionary条目,然后添加或增加它。
对于较大的问题或面临性能问题时,您可以使用具有足够元素的Int32数组到也许让所有有效的IQ值,计算指数为:
int[] Sums = new int[100];
// Loop this over your CSV
int IQ = 120;
Sums[IQ - 50]++;
- 1. 计算c中某个特定目录下文件夹内的文件数
- 2. 如何替换某个文件中的某个特定数字
- 3. 计算文件中字的数量
- 4. Python:计算数字总和csv文件
- 5. 如何递归计算字符串中某些特定字符的数量?
- 6. 计算文件中的指定字数
- 7. Spotfire:计算字符串中某个字符的数量
- 8. 如何计算xml文件中某个特定属性的出现次数?
- 9. 计算某个字符串在特定列中出现的次数
- 10. 计算某个表单中特定输入的出现次数
- 11. 我如何计算字符串中特定字符的数量?
- 12. 计算一个java字符串中的特定事件的数量
- 13. 如何计算文件中的数字/字母数量?
- 14. 如何计算特定值的数量
- 15. 在数据库中计算特定记录的数量
- 16. 使用批处理来计算文件夹中特定文件的数量
- 17. 用Java计算CSV文件中的字符数
- 18. 在CSV特定细胞的VBA脚本计算文件
- 19. 在多个csv文件中计算行数,跳空行
- 20. 宏来计算列中特定值/字符串的数量
- 21. 计算文件中每个字符的数量
- 22. 如何计算mysql中的某一行中的特定符号的数量
- 23. 如何计算归档文件夹中某个文件的某些数据?
- 24. 计算字符串内特定字符的数量
- 25. 计算R中某个数据帧行的特定词的出现次数
- 26. 如何计算多个文件中类似数据库的特定字段?
- 27. 计算大文本文件中特定词的出现次数
- 28. 计算txt文件中特定文本的出现次数
- 29. 计算某个对象在JSON查询中出现的数量
- 30. 如何计算Python中特定目录中文本文件的唯一字数?
什么是CSV文件的结构? –
这样做的最简单方法是安装/使用R.这是R中的几行,或者您是否有必须使用的特定语言? – BadZen
这可能是一些不错的在bash中使用''cut' /'sed','sort'和'uniq -c';} – tmp