我想把一个运行良好的Python脚本转换成C#。
我有一个C#DataFrame,使用Microsoft.Data.Analysis;
库。列名是[时间]、[地点]、[样本]、[温度]
我需要处理两个连续的任务:
1.用相同的[time] AND [site]对行进行分组--〉对[sample]中的值求和,只保留[temperature]列的一个值,最后一个。dF_out= df_in.groupby(['time','site'], as_index=False).agg({'sample':'sum', 'temperature':'last'})
1.在一个常量整数数组中找到与任意(ALL!)值匹配的[sample]值,在Python中我做了以下操作:df_out= df_out.loc[df_out['samples'].isin(int_array)]
在Python中,我更有信心,方法.GrouBy(...)
.isin(...)
方法是直接的,并且在Pandas文档中描述得非常好。有人能帮助我以最有效的方式将其转换为C#吗?
先谢谢你
2条答案
按热度按时间5ssjco0h1#
1.通过indexer访问行值,然后按时间和地点分组。
1.假设第二个任务在第一个任务之后,您可以在单个
Select()
操作中执行这两个任务:SamplesSum
。为了求和,你需要转换为合适的类型,我用int
作为例子。LastTemperature
int_array
和样本的本地分组)的交集,并将其保存为MatchingValues
。在此,从数据框行选择样本值时也不要忘记正确的类型转换我有点担心选择最后一个温度而不先排序。最后一个温度将只是分组中的最后一个温度,而不确定它是最小值还是最高值。
生成的
dF_out
集合将具有以下结构:gfttwv5a2#
我经历了一个类似的任务,所以我可以报告一个可能的解决方案,为其他读者:
那么对于第二任务,