如何查找系列元素计数?使用此代码:
{% extends "heaven/base.html" %}
{% load staticfiles %}
{% block content %}
<h2>Location of Cemetery</h2>
<div id="map" style="width:1000px;height:500px;background:yellow">
<script>
function myMap() {
var mapCanvas = document.getElementById("map");
var myLatLng=new google.maps.LatLng({{ cemetery.latitude }}, {{ cemetery.longitude }})
var mapOptions = {center: myLatLng, zoom: 20};
var map = new google.maps.Map(mapCanvas, mapOptions);
var marker = new google.maps.Marker({position: myLatLng});
marker.setMap(map);
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=myMap"></script>
{% endblock %}
没有多大帮助。有没有办法计算元素出现次数,所以结果将是一个带有'element,count'对的字典,如下所示:
import pandas as pd
d = { 'x' : [1,2,2,2,3,4,5,5,7] }
df = pd.DataFrame(d)
cnt1 = len(df[df.x == 1])
cnt2 = len(df[df.x == 2])
cnt3 = len(df[df.x == 3])
...
或在其他一些易于查找和迭代的结构中?
答案 0 :(得分:2)
您可以使用value_counts
。它返回一个可以像字典一样查找的系列,你可以迭代它:
df['x'].value_counts(sort=False)
Out:
1 1
2 3
3 1
4 1
5 2
7 1
Name: x, dtype: int64
如果需要,您也可以将其转换为字典:
df['x'].value_counts().to_dict()
Out: {1: 1, 2: 3, 3: 1, 4: 1, 5: 2, 7: 1}
答案 1 :(得分:0)
以下是获取频率分布的两种方法
In [8]: df.groupby('x').size().to_dict()
Out[8]: {1: 1, 2: 3, 3: 1, 4: 1, 5: 2, 7: 1}
In [9]: df['x'].value_counts().to_dict()
Out[9]: {1: 1, 2: 3, 3: 1, 4: 1, 5: 2, 7: 1}