我有一个数据框如下:
| 日期|时间|美国|五|
| - ------|- ------|- ------|- ------|
| 2023年1月3日|十点二十分零八秒|五个|八个|
| 2023年1月3日|十点二十五分零八秒|第二章|三个|
| 2023年1月3日|十点二十七分零八秒|三个|三个|
| 2023年1月3日|十点二十九分零八秒|六个|六个|
| 2023年1月3日|10点31分08秒|四个|六个|
| 2023年1月3日|十点三十五分零八秒|九|七|
| 2023年1月3日|十点三十七分零八秒|十个|四个|
| 2023年1月3日|十点三十九分零八秒|十一|十二|
我尝试取2个值的平均值,并打印日期、时间、U和V的平均值结果。
我已经这样做了:
data_columns=['Date','Time','U','V']
df3= data.groupby(np.arange(len(data))//2).mean()
print(df3)
然而,我的数值求平均值并打印出来,但我的日期和时间却没有。我知道这一点是因为df. groupby函数只对数值有效,而日期和时间类型是对象。我如何打印日期和时间,以便打印平均值的初始时间。如下所示:
Date | Time |U | V|
2023-01-03 10:00:21:08 3.5 5.5
2023-01-03 10:00:27:08 4.5 4.5
2023-01-03 10:00:31:08 6.5 6.5
2023-01-03 10:00:37:08 10.5 8
'**实际上它的... np.排列(len(data)//300).平均值()
1条答案
按热度按时间2lpgd9681#
IIUC,
groupby()
函数用于列名或列名列表,如groupby('Date')
或groupby(['Date','Time'])
data
是panda的 Dataframe ,如下所示| | 日期|时间|美国|五|
| - ------|- ------|- ------|- ------|- ------|
| 无|2023年1月13日|11点31分43秒48秒1765|十五|八个|
| 1个|2023年1月13日|十一时三十一分四十四秒四十八万五千六百九十八分|十三|十一|
| 第二章|2023年1月13日|11时31分45秒489秒411|七|十一|
| 三个|2023年1月13日|十一时三十一分四十六秒四十九两五九二|六个|十一|
| 四个|2023年1月13日|11时31分47秒496405分|十八|十七|
| ...|...|...|...|...|
| 九十六|2023年1月13日|11时33分19秒81秒28秒32|十个|五个|
| 九十七|2023年1月13日|11时33分20秒812896分|五个|十五|
| 九十八|2023年1月13日|11时33分21秒816767|十六|九|
| 九十九|2023年1月13日|十一时三十三分二十二秒八十八万五五三|六个|八个|
| 一百|2023年1月13日|十一时三十三分二十三秒八十八万六五一|十三|六个|
数据已写入
logfile
"log.csv"文件。读入dataframe.data
变量。通过应用组合了
Date
和Time
的pd.Timestamp.combine()
创建新列timestamp
。你会得到这个的
| | 日期|时间|美国|五|时间戳|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 无|2023年1月13日|11点31分43秒48秒1765|十五|八个|2023年1月13日11时31分43.481765秒|
| 1个|2023年1月13日|十一时三十一分四十四秒四十八万五千六百九十八分|十三|十一|2023年1月13日11时31分44.485698秒|
| 第二章|2023年1月13日|11时31分45秒489秒411|七|十一|2023年1月13日11时31分45.489411秒|
| 三个|2023年1月13日|十一时三十一分四十六秒四十九两五九二|六个|十一|2023年1月13日11时31分46.492592秒|
| 四个|2023年1月13日|11时31分47秒496405分|十八|十七|2023年1月13日11时31分47.496405秒|
| ...|...|...|...|...|...|
| 九十六|2023年1月13日|11时33分19秒81秒28秒32|十个|五个|2023年1月13日11时33分19.812832秒|
| 九十七|2023年1月13日|11时33分20秒812896分|五个|十五|2023年1月13日11时33分20.812896秒|
| 九十八|2023年1月13日|11时33分21秒816767|十六|九|2023年1月13日11时33分21.816767秒|
| 九十九|2023年1月13日|十一时三十三分二十二秒八十八万五五三|六个|八个|2023年1月13日11时33分22.818553秒|
| 一百|2023年1月13日|十一时三十三分二十三秒八十八万六五一|十三|六个|2023年1月13日11时33分23.818651秒|
然后,在使用
df3
变量时,以下代码对timestamp
列使用resample()
函数和rule='min'
(每分钟),并将偏移量设置为0s
(零秒)。然后计算mean()
,然后重置 Dataframe 索引,将列名设置为U_mean
第一个结果是这样的
| | 时间戳|U_平均值|
| - ------|- ------|- ------|
| 无|2023年1月13日11时31分|九二三五二九|
| 1个|2023年1月13日11时32分|十|
| 第二章|2023年1月13日11时33分|八百二十五万|
最后,对于
df4
,V
的平均值然后在
timestamp
上合并df3
和df4
,您将获得最终结果最后,结果是
| | 时间戳|U_平均值|V_平均值|
| - ------|- ------|- ------|- ------|
| 无|2023年1月13日11时31分|九二三五二九|十一一一七六四七|
| 1个|2023年1月13日11时32分|十|十万七千一万六千六百六十七|
| 第二章|2023年1月13日11时33分|八百二十五万|十二五四一六百六十七|
希望这能有所帮助。