使用Pandas对具有相同列d的Excel表格中的数据进行平均处理

2024-04-24 09:40:15 发布

您现在位置:Python中文网/ 问答频道 /正文

Data Snippet

请参见数据片段。我在Excel的多个表中有相似的数据,每个表都是不同的年份。对于每个月、日和时间(12和00),我想取所有表中K列的平均值。但是,每个工作表的数据行并不相同。我想取所有工作表中K的平均值,但前提是A、B、E、G列中的数据在所有工作表中都匹配。因此,从数据示例中,我将得到所有工作表的K2平均值,其中每个工作表月=1,日期=1,时间=am,mb=100。在


Tags: 数据示例时间k2mbamexcel平均值
1条回答
网友
1楼 · 发布于 2024-04-24 09:40:15

没有你的数据,我做了两个例子DataFrames

首先,您需要将数据从excel导入pandas,方法是:

df1 = pd.read_excel('name_file.xlsx', sheet_name='year2018')

每年都这样做。在

之后,您可以使用我的示例来获得预期的输出:

^{pr2}$

我们可以使用^{}将数据帧附加在一起(在您的例子中,这些数据帧可以超过两个)。在

df_all = pd.concat([df1, df2], ignore_index=True)
print(df_all)

    Month  Date  Year Time   mb  dir
0       1     1  2018   AM  100  265
1       1     1  2018   AM  150  265
2       1     1  2018   AM  200  270
3       1     1  2018   AM  250  270
4       1     1  2018   PM  100  265
5       1     1  2018   PM  150  265
6       1     1  2018   PM  200  265
7       1     1  2018   PM  250  265
8       1     1  2019   AM  100  275
9       1     1  2019   AM  150  275
10      1     1  2019   AM  200  280
11      1     1  2019   AM  250  280
12      1     1  2019   PM  100  275
13      1     1  2019   PM  150  275
14      1     1  2019   PM  200  275
15      1     1  2019   PM  250  280

现在我们可以使用^{}来获得预期的输出:

print(df_all.groupby(['Month', 'Date', 'Time', 'mb']).dir.mean().reset_index())

   Month  Date Time   mb    dir
0      1     1   AM  100  270.0
1      1     1   AM  150  270.0
2      1     1   AM  200  275.0
3      1     1   AM  250  275.0
4      1     1   PM  100  270.0
5      1     1   PM  150  270.0
6      1     1   PM  200  270.0
7      1     1   PM  250  272.5

相关问题 更多 >