字符串模式的总和?

我有一个像这样的Pandas DataFrame:

ID        Traverse001        1->1->1->2->3->1002        13->13003        2->3->13->15004        5->6->3005        16->7->7->7->7->8006        4->4->3->5007        5->5->1->1->1->2

输出应如下所示:

1 to 1 : 41 to 2 : 22 to 3 : 24 to 4 : 13 to 5 : 113 to 13 : 17 to 7 : 3...依此类推 

这基本上是识别模式并计算其出现次数,然后为这样的DataFrame生成输出。

我写了一个查询如下:

df.Quad.str.contains(r'1->1').sum()` #获取1->1

但它只是将包含像1->1这样的模式的行相加,而没有单独相加

注意:1->1->1应输出1 to 1 : 2(以此类推)


回答:

import pandas as pdfrom collections import Counterdf = <your dataframe>count = Counter()for row in df['traverse']:    nums = list(map(int, row.split('->')))    for index, value in enumerate(nums[:-1]):        count[value, nums[index + 1]] += 1for key, value in sorted(count.items()):    print('{k[0]} to {k[1]} : {v}'.format(k=key, v=value))

输出:

1 to 1 : 41 to 2 : 22 to 3 : 23 to 1 : 13 to 5 : 13 to 13 : 14 to 3 : 14 to 4 : 15 to 1 : 15 to 5 : 15 to 6 : 16 to 3 : 17 to 7 : 37 to 8 : 113 to 13 : 113 to 15 : 116 to 7 : 1

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注