Python 如何使用正则表达式中的变量计算平均值
假设我有这样一个CSV文件: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
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