计算数据子集的每一列的n个值的平均值时出现的问题

时间:2019-07-16 14:49:26

标签: python pandas dataframe

我是python刚尝试进行数据预处理的新手。我有一个csv文件,其输出如下:

       Time        A         B     C              
       05:00.9     50.0      0  0.148757      
       05:02.0     76.0      0  0.148757      
       Load        12:04:59      2.0                
       07:37.5      0.0      0  0.155029      
       07:38.6     70.0      0  0.155029      
       Load        12:07:36      2.0          

所需的输出:

       Time         A        B     C         
       05:00.9     50.0      0  0.148757     
       05:02.0     76.0      0  0.148757      
                   63        0  0.148575
       Load         12:04:59      2.0                
       07:37.5      0.0      0  0.155029      
       07:38.6     70.0      0  0.155029  
                   70.0      0  0.155029     
       Load        12:07:36      2.0          

在csv文件中遇到加载时间之前,我需要计算每列的平均值,并将数据存储在数据框中。

我尝试了以下代码。它遍历整个列,但是我需要在每个加载时间之前的平均值而不是加载时间的平均值。谢谢

for row in df.iterrows():
       A=df['A'].mean()
       B=df['B'].mean()

       or 
      for row in df.iterrows():
      df2 = df.groupby(str.contains("Load")).mean()
      print(df2)

1 个答案:

答案 0 :(得分:1)

csv读入dataframe后-您可以通过检查特定行是否包含字符串 Load ID >在其中-

df["Contains_String_Load"] = df.Time.str.contains("Load").astype('int')
#Above line will return a 1 if the row has Load, 0 otherwise
df["Group_ID"] = df.Contains_String_Load.cumsum()
df = df.loc[df.Contains_String_Load==0, :]
df.groupby("Group_ID").mean()

返回此

             A    B         C     D  Contains_String_Load
Group_ID                                                 
0         63.0  0.0  0.148757  46.7                     0
1         35.0  0.0  0.155029  45.1                     0