当前位置: 首页 > 知识库问答 >
问题:

如何从交易数据中返回最佳N个客户的客户ID

史劲
2023-03-14

我有CSV中的交易数据,其中包含客户ID、交易金额、交易日期等列。我有一个函数,它接受transactions\u csv\u file\u path作为字符串,N作为整数作为参数。我想从事务数据中返回最好的N个客户。注:[最佳客户为连续每日付款时间最长的客户]`。我可以阅读CSV,如下所示:

public static string[,] ProcessCSV(string file_path, int n)
{
List<string> transData = new List<string>();
            using (StreamReader sr = new StreamReader(file_path))
            {
                
                string strResult = sr.ReadToEnd();
                var values = strResult.Split(',');
                transData.Add(values[0]);
                transData.Add(values[1]);

            }
return transData.ToArray();
}

如何从CSV获取阵列数据,并以最长的连续日付款周期获得最佳的N个客户ID?

要考虑:将连续的每日付款定义为每个日历日至少1笔交易。如果有任何联系,请使用升序来打破联系。例如,K20003在K20005之前


共有1个答案

芮琛
2023-03-14

我可能会提出一种计算最长运行长度的方法:

int MaxRun(IEnumerable<DateTime> ds){
  int max = 0;
  int current = 0;
  var prev = DateTime.MinValue;

  foreach(var d in ds.Distinct().OrderBy(x => x)){
    if((d - prev).Days == 1)
      current++;
    else 
      current = 0;
    prev = d;
    if(current > max)
      max = current;
  }
  return max;
}

然后使用一点LINQ将人员分组,计算maxrun,按maxrun命令传输,并输出人员:

transactions
  .GroupBy(t => t.Customer, t => t.TransactionDate )
  .Select(g => new { g.Key, MR = MaxRun(g) })
  .OrderBy(at => at.MR)
  .ThenBy(at => at.Key)
  .Select(at => at.Key)
  .ToArray()
 类似资料:
  • 我有两个带有链接数据的表。有针对单个客户(客户id)的活动更新。我想返回每个客户最近的活动; 联系客户id(自动增量)姓氏姓氏姓氏 电话工作 活动活动\u id(自动增量)数据\u项目\u id按日期输入\u创建注释 我可以返回整套活动; 从联系人的联系人加入活动中选择姓氏、名、创建日期、备注。客户id=活动。数据项标识; ...但是我只想要每个customer_name最近的活动。如果我使用唯一

  • 问题内容: 我有第三方WSDL,我需要用Java编写代码以使Web服务客户端调用第三方WSDL中的操作。现在,我已经使用Axis的WSDL2JAVA工具生成了客户端存根,并使用XMLbeans进行了数据绑定。 进行此JAVA的最佳方法是什么? 我阅读了有关SAAJ的文章,看起来这种方法会更细化吗? 除了使用WSDL2Java工具之外,还有什么其他方法可以生成代码。也许wsimport还有其他选择。

  • 但客户网站上说: 已发送PayPal Express结账付款(唯一交易ID 7PK53077PJ222701T)

  • 我与Laravel有一个项目,负责管理endpoint调用,并通过Vue控制前端。 当用户登录时,响应(令牌)保存在本地存储中,然后在app.js我将此令牌自动添加到所有调用中。 登录 应用程序。js 现在,我们将看到问题。 当我们转到第二页时,将自动启动endpoint调用以填充一些输入。此调用理论上具有本地存储令牌。 路由(APIendpoint) 头部控制器 这将返回拒绝访问。令牌在标头中被

  • 我已经使用java nio创建了一个客户端-服务器应用程序,它工作正常,但我的问题是,当服务器有许多连接到服务器的客户端时,服务器会响应错误的客户端,而不是请求客户端。例如,如果客户端A请求第一个人的信息,服务器将第一个人的信息返回给客户端B而不是客户端A。我已经尝试同步对象,但仍然无法正常工作,可能是什么问题。这是我的服务器示例代码

  • 我正在使用Datagramsocket和DatagramPacket制作一个简单的server_client应用程序。我想做的是:一个客户端将数据发送到服务器,服务器将这些数据发送到另一个客户端。问题是服务器从第一个客户端接收数据,但不将它们发送到另一个客户端,我怎么知道我将发送到的客户端的端口?端口没有改变吗? 这是客户端类: 服务器类: }