Python 如何使用正则表达式中的变量计算平均值

Python 如何使用正则表达式中的变量计算平均值,python,Python,假设我有这样一个CSV文件: 2000,1 2001,2 2000,4 2001,8 我希望python能够找到2000行,检查第二列的值,然后平均2000的值。我希望在2001年也这样做 有没有办法用正则表达式?我在这里提出了一个非常简单的版本;实际数据有数千行。我喜欢在这里使用基于正则表达式的方法。我们可以首先尝试将re.findall与regex模式\b2000、(\d+)一起使用: 这张照片是: [1, 4] average is: 2.5 假设元组之间有一条换行符,我建议使用pan

假设我有这样一个CSV文件:

2000,1
2001,2
2000,4
2001,8
我希望python能够找到2000行,检查第二列的值,然后平均2000的值。我希望在2001年也这样做


有没有办法用正则表达式?我在这里提出了一个非常简单的版本;实际数据有数千行。

我喜欢在这里使用基于正则表达式的方法。我们可以首先尝试将
re.findall
与regex模式
\b2000、(\d+)
一起使用:

这张照片是:

[1, 4]
average is: 2.5

假设元组之间有一条换行符,我建议使用
pandas

如果情况并非如此,请参见@Tim Biegeleisen的答案

import pandas as pd

#create some example date to illustrate the logic
df = pd.DataFrame({"variable":[2000,2001,2000,2001], "value":[1,2,4,8]})

df.groupby("variable")["value"].mean()
输出:

variable
2000    2.5
2001    5.0
Name: value, dtype: float64
在您的情况下,您应该接收CSV文件,如下所示:

df=pd.read\u csv(“myfile.csv”,sep=“,”)


请参阅
read\u csv
文档,以确保正确读取数据。

无法判断此处是否存在格式错误。csv中2000,1和2001,2之间是否有换行?这可能很容易用pandas.from_csv处理,然后进行过滤和平均。是的,有换行符,对不起,有没有一种方法可以在没有熊猫的情况下做到这一点?其他库(如熊猫)的使用是否有任何限制?熊猫对我不起作用,我已经安装了它,但它一直说没有模块发现值不在一个大字符串中,但是有换行符。这还能用吗?@Felix,是的,@TimBiegeleisen不错的方法,+1。您可能需要添加如何获得平均值
sum(nums)/len(nums)
是OP要求的,如果我读对了的话。
variable
2000    2.5
2001    5.0
Name: value, dtype: float64