也许有人能帮我?我必须编写一个函数,从表中返回字典,表中的键是诸如性别、年龄、位置、电晕测试答案和日期等信息。值是它们在表列中出现的频率
[['N', '25-29', 'Eesti', 'Harju maakond', 'N', '06.03.2020'],
['N', '35-39', 'Eesti', 'Harju maakond', 'N', '06.03.2020'],
['N', '40-44', 'Eesti', 'Saare maakond', 'N', '06.03.2020'],
['N', '35-39', 'Eesti', 'Tartu maakond', 'N', '06.03.2020'],
['M', '40-44', 'Eesti', 'Harju maakond', 'N', '06.03.2020']]
这是我的密码:
def erinevused(faili_nimi, i):
with open(faili_nimi, encoding = "UTF-8") as fail:
read = fail.read().split(";")
sõnastik = {i: read.count(i) for i in read}
return sõnastik
它给出了所有的频率
{'N': 6, '25-29': 1, 'Eesti': 5, 'Harju maakond': 3, '06.03.2020\nN': 3, '35-39': 2, '40-44': 2, 'Saare maakond': 1, 'Tartu maakond': 1, '06.03.2020\nM': 1, '06.03.2020': 1}
但我只需要像这里这样的I值(I从1开始,而不是从0开始):
erinevused('andmed.txt', 2)
{'25-29': 1, '35-39': 2, '40-44': 2}
那么,如何获得列中元素的频率呢
也许你想要这个
另外,由于像
Eesti, Harju maakond
这样的位置名是一个位置/地点,所以我对给定的数据表做了一些更改。另外,您提供了5个标题,但数据中有6列,这就是为什么我必须这样做的原因。可能,您必须在以前生成该表的代码中也更改它,因为我猜它是爱沙尼亚某个位置的名称始终使用Pandas来处理数据列
打印输出(df):
频率计数的输出:
如果不使用熊猫,它甚至更短。问题是,如果您想为每一列使用它,那么代码只是多余的和不必要的重复。这就是为什么熊猫是可怕的。Python就是要让任务更简单、更高效。:)
但是,无论如何。这是没有熊猫的代码
输出:
计数器是字典对象。如果将
Counter(age_list)
赋值给另一个变量。您可以随时随意访问任何年龄组的频率。有点像这样当然,输出是
2
相关问题 更多 >
编程相关推荐