Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 求满足条件的单元格的平均值_Python_Pandas_Dataframe - Fatal编程技术网

Python 求满足条件的单元格的平均值

Python 求满足条件的单元格的平均值,python,pandas,dataframe,Python,Pandas,Dataframe,我们的单元格格式为“aa-bb-CCCC/yyyy”/xx@ddddddddd.ee'中,xx是格式A0-Z9中的标题,yyyy是格式0001-9999中的数字。我们想找到单元格的yyyy平均值,其中xx='X1'。这个表是巨大的,所以在每个单元格上迭代似乎是有问题的。我是否可以在这里使用函数filterlike='X1',在满足此条件的情况下,我很难找到提取yyyy的方法 import pandas as pd df = pd.read_csv("dane.csv", sep=';') sha

我们的单元格格式为“aa-bb-CCCC/yyyy”/xx@ddddddddd.ee'中,xx是格式A0-Z9中的标题,yyyy是格式0001-9999中的数字。我们想找到单元格的yyyy平均值,其中xx='X1'。这个表是巨大的,所以在每个单元格上迭代似乎是有问题的。我是否可以在这里使用函数filterlike='X1',在满足此条件的情况下,我很难找到提取yyyy的方法

import pandas as pd
df = pd.read_csv("dane.csv", sep=';')
shape = list(df.shape)
for i in range(0,shape[1]):
    if df.iloc[:,i].filter(like='X1')
输入示例中,第一行是列名

1: Brandenburg (Post-Panamax)               2: Acheron (Feeder)                        
ES-NL-10633096/1938/X1@hkzydbezon.dk/6749   DE-JP-20438082/2066/A2@qwinfhcaer.cu/68849
BE-BR-61613986/3551/B1@oqk.bf/39927         NL-LK-02275406/2136/A1@ozmmfdpfts.de/73198
PH-SA-39552610/2436/A1@venagi.hr/80578
PA-AE-59814691/4881/X1@zhicvzvksl.cl/25247  OM-PH-31303222/3671/Z1@jtqy.ml/52408

据我所知,你需要计算所有单元格的一个平均值 满足标准,无论列在何处

从重新导入开始

然后编译正则表达式:

pat = re.compile(r'(?:[A-Z]{2}-){2}\d+/(?P<n>\d+)/X1@[A-Z]+\.[A-Z]{2}',
    flags=re.I)
对于您的样本数据,结果为3409.5

要了解计算的方式,请执行每个步骤 作为单独的指示,并观察结果

pd.Series(df.values.reshape(-1, 1).squeeze()).str.extract(pat)\
    .dropna().astype(int).n.mean()