我是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)
答案 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