【发布时间】:2021-06-14 15:49:42
【问题描述】:
我是 Python 的新手!所以这里是我正在做的事情(试图做的事情)的概要。
首先,我想将秒转换为小时。然后,对于一个小时范围内的每个数据,我想将它们相加并找到平均值。
所以 1) 我暂时得到了这个:
hour = 0
timesummed = []
#x axis, total 13 hours of daytime
for i in daytime["d"]:
hour += i
timesummed.append(hour)
然后我除以 3600 秒得到 13 小时
daytime['seconds'] = timesummed
daytime['hours'] = daytime['seconds']/3600
有效。然而,
- 我想添加所有数据并在任何给定小时的范围内找到平均值(例如,第 9 到第 10 小时之间的数据)
我明白了:
liste = []
begin = 0
mean= 0
for i in range(len(daytime['Sleep'])):
if daytime["hours"][i]>9 and daytime["hours"][i]<10 and daytime["Sleep"] [i] != 0:
begin += daytime["Sleep"][i]
moyenne=begin/len(liste)
if daytime["Sleep"] [i] == 0: #ignores zero values (eg twitch)
continue
liste.append(begin)
print(begin/len(liste))
这也有效,但如何自动获得每小时的平均值? (一口气而不是手动放置范围)
编辑:数据框日间示例:
| duration | activity | Sleep | Seconds | Hours |
|---|---|---|---|---|
| 201.902 | Sleep | 201.902 | 201.902 | 0.0560 |
| 5.4399 | Twitch | 0.0 | 207.341 | 0.0575 |
| 66.407 | Sleep | 66.407 | 273.749 | 0.076 |
| 0.240 | Walk Slowly | 0.0 | 1214.268 | 0.337 |
| 7.685 | Groom | 0.0 | 1241.492 | 0.345 |
(不等于“睡眠”活动的活动被置为零,因此不予考虑)
【问题讨论】:
-
“自动”是什么意思?
-
@HenryEcker 他们正在使用来自 DataFrame
daytime的列,但 @I_will_learn 的当前解决方案目前不使用任何 DataFrame 或 pandas 功能 -
@I_will_learn 你能提供你的DataFrame
daytime的样本吗?这将大大有助于使您的代码可重现,并让我们更好地了解您要完成的工作 -
@DerekO 好了,可以吗?我有超过 8000 行数据,这些数据的价值长达 13 小时,所以我不确定有多少信息就足够了
标签: python python-3.x dataframe for-loop