基于另一列拆分csv文件的一列

2024-09-27 18:05:27 发布

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

我正在尝试将一个csv文件的温度数据拆分成更小的字典,这样我就可以计算出每个月的平均温度。csv文件的格式如下:

AirTemperature  AirHumidity SoilTemperature SoilMoisture    LightIntensity  WindSpeed   Year    Month   Day Hour    Minute  Second  TimeStamp   MonthCategorical
12  68  19  65  60  2   2016    1   1   0   1   1   10100   January
18  34  14  42  19  0   2016    1   1   1   1   1   10101   January
19  98  14  41  30  4   2016    1   1   2   1   1   10102   January
16  88  16  68  54  4   2016    1   1   3   1   1   10103   January
16  44  20  41  10  1   2016    1   1   4   1   1   10104   January
22  54  18  65  94  0   2016    1   1   5   1   1   10105   January
18  84  17  41  40  4   2016    1   1   6   1   1   10106   January
20  88  22  92  31  0   2016    1   1   7   1   1   10107   January
23  1   22  59  3   0   2016    1   1   8   1   1   10108   January
23  3   22  72  41  4   2016    1   1   9   1   1   10109   January
24  63  23  83  85  0   2016    1   1   10  1   1   10110   January
29  73  27  50  1   4   2016    1   1   11  1   1   10111   January
28  37  30  46  29  3   2016    1   1   12  1   1   10112   January
30  99  32  78  73  4   2016    1   1   13  1   1   10113   January
32  72  31  80  80  1   2016    1   1   14  1   1   10114   January

在6个月内每天有24个读数。在

我可以用下面的代码做到一半:

^{pr2}$

但是它的输出是每个airmtemp值与包含值January的行数重复。一、 不是12,18,19等等,而是12,12,12,12,12,18,18,18,18,19,19,19,19

我尝试了以下方法:

^{3}$

但是我得到了以下错误:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().我认为是因为它试图查看整个列而不是等效的行。在


Tags: 文件csv数据字典格式温度yearjanuary
1条回答
网友
1楼 · 发布于 2024-09-27 18:05:27

IIUC,你可以按月份分组,得到每月的平均气温:

g = df.groupby('MonthCategorical')['AirTemperature'].mean().reset_index(name='MeanAirTemperature')

这将返回:

^{pr2}$

然后,您可以选择要分组的列(例如,您可以按Month来分组,而不是MonthCategorical分组…)。在

编辑: 您还可以使用transform获取一个新列以附加到原始数据帧:

df['MeanAirTemperature'] = df.groupby('MonthCategorical')['AirTemperature'].transform('mean')

相关问题 更多 >

    热门问题