python pandas 统计某一数据出现多少次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python pandas 统计某一数据出现多少次相关的知识,希望对你有一定的参考价值。

输入:
import pandas as pd
data0 = [0,1,2,0,1,0,2,0]
pd.value_counts(data0)
输出每个数出现的频数:
0 4
2 2
1 2
(0出现4次,2出现2次,1出现两次)
参考技术A 创建数据 通过Python的zip构造出一元组组成的列表作为DataFrame的输入数据rec。 In [三]: import pandas as pd In [四]: import random In [5]: num = random.sample(xrange(一0000, 一000000), 5) In [陆]: num Out[陆]: [二四四9三漆, 一三二00吧, 二漆吧四四陆, 陆一三四09, 漆99二0一] In [吧]: names = "hello the cruel world en".split() In [9]: names Out[9]: ['hello', 'the', 'cruel', 'world', 'en'] In [一0]: rec = zip(names, num) In [一5]: data = pd.DataFrame(rec, columns = [u"姓名",u"业绩" ]) In [一陆]: data Out[一陆]: 姓名 业绩 0 hello 二四四9三漆 一 the 一三二00吧 二 cruel 二漆吧四四陆 三 world 陆一三四09 四 en 漆99二0一 DataFrame方法函数的第一个参数是数据源,第二个参数columns是输出数据表的表头,或者说是表格的字段名。 导出数据csv Windows平台上的编码问题,我们可以先做个简单处理,是ipython-notebook支持utf吧. import sys reload(sys) sys.setdefaultencoding("utf吧") 接下来可以数据导出了。 In [三一]: data Out[三一]: 姓名 业绩 0 hello 二四四9三漆 一 the 一三二00吧 二 cruel 二漆吧四四陆 三 world 陆一三四09 四 en 漆99二0一 #在ipython-note里后加问号可查帮助,q退出帮助 In [三二]: data.to_csv? In [三三]: data.to_csv("c:\\out.csv", index = True, header = [u"雇员", u"销售业绩"]) 将data导出到out.csv文件里,index参数是指是否有主索引,header如果不指定则是以data里columns为头,如果指定则是以后边列表里的字符串为表头,但要注意的是header后的字符串列表的个数要和data里的columns字段个数相同。 可到c盘用Notepad++打开out.csv看看。 简单的数据分析 In [四三]: data Out[四三]: 姓名 业绩 0 hello 二四四9三漆 一 the 一三二00吧 二 cruel 二漆吧四四陆 三 world 陆一三四09 四 en 漆99二0

时分时间点分类时间段,统计每个时间段出现次数,结果放入pandas数据帧,Python

时分时间点分类时间段,统计每个时间段出现次数,结果放入pandas数据帧,Python

https://zhangphil.blog.csdn.net/article/details/125911971https://zhangphil.blog.csdn.net/article/details/125911971

把不同的时间点划入对应的时间段区间,比如12:23,归入到(12,13)时间段,并计数1。15:23归入到(15,16)时间段,并计数1。如果出现新的时间点(比如12:51)落入到(12,13),增加计数,此时为2。把时间段和计数结果放入到pandas数据帧。

import datetime
import random
import pandas as pd

# 生成随机测试时间数量
from pprint import pprint

SAMPLE_COUNT = 10
SECTION = 'section'
SUM = 'sum'


def my_time():
    times = []
    for i in range(24):
        times.append(SECTION: (i, i + 1), SUM: 0)

    cnt = 0
    while True:
        h = random.randint(0, 23)
        m = random.randint(0, 59)
        t = datetime.time(hour=h, minute=m)
        for tx in times:
            if tx[SECTION][0] <= t.hour < tx[SECTION][1]:
                tx[SUM] = tx[SUM] + 1
                pprint(f't.strftime("%H:%M") @ tx[SECTION]')
                break

        cnt = cnt + 1
        if cnt > SAMPLE_COUNT:
            break

    return times


if __name__ == '__main__':
    times = my_time()
    print('-')
    pprint(times)

    print('--')

    # 数据组装成pandas数据帧。
    pd_data = []
    for t in times:
        l = [t[SECTION], t[SUM]]
        pd_data.append(l)

    col = ['时间段', '时间点次数']
    df = pd.DataFrame(data=pd_data, columns=col)
    df = df.sort_values(by=col[1], axis=0, ascending=False)  # 降序

    # 重置索引
    df = df.reset_index(drop=True)
    df.index = df.index + 1

    pprint(df.head(10))

输出:

'22:28 @ (22, 23)'
'17:46 @ (17, 18)'
'13:17 @ (13, 14)'
'00:39 @ (0, 1)'
'00:25 @ (0, 1)'
'21:01 @ (21, 22)'
'10:31 @ (10, 11)'
'18:48 @ (18, 19)'
'19:00 @ (19, 20)'
'13:27 @ (13, 14)'
'19:37 @ (19, 20)'
-
['section': (0, 1), 'sum': 2,
 'section': (1, 2), 'sum': 0,
 'section': (2, 3), 'sum': 0,
 'section': (3, 4), 'sum': 0,
 'section': (4, 5), 'sum': 0,
 'section': (5, 6), 'sum': 0,
 'section': (6, 7), 'sum': 0,
 'section': (7, 8), 'sum': 0,
 'section': (8, 9), 'sum': 0,
 'section': (9, 10), 'sum': 0,
 'section': (10, 11), 'sum': 1,
 'section': (11, 12), 'sum': 0,
 'section': (12, 13), 'sum': 0,
 'section': (13, 14), 'sum': 2,
 'section': (14, 15), 'sum': 0,
 'section': (15, 16), 'sum': 0,
 'section': (16, 17), 'sum': 0,
 'section': (17, 18), 'sum': 1,
 'section': (18, 19), 'sum': 1,
 'section': (19, 20), 'sum': 2,
 'section': (20, 21), 'sum': 0,
 'section': (21, 22), 'sum': 1,
 'section': (22, 23), 'sum': 1,
 'section': (23, 24), 'sum': 0]
--
         时间段  时间点次数
1     (0, 1)      2
2   (13, 14)      2
3   (19, 20)      2
4   (22, 23)      1
5   (21, 22)      1
6   (18, 19)      1
7   (17, 18)      1
8   (10, 11)      1
9   (20, 21)      0
10  (16, 17)      0

以上是关于python pandas 统计某一数据出现多少次的主要内容,如果未能解决你的问题,请参考以下文章

python 如何统计dataframe中某一列数据中每个元素出现的次数

python panda 统计一列有多少数据

pandas:统计某一列字符串中特定单元出现的频率

pandas:统计某一列字符串中各个word出现的频率

SQL中如何统计查询结果中某一列重复值的个数?

python 由用户输入掷多少次骰子,然后统计每个面出现的次数