gpt4 book ai didi

python - 按时间单位而不是逐行迭代数据帧

转载 作者:太空狗 更新时间:2023-10-30 02:37:49 26 4
gpt4 key购买 nike

我有一个 pandas.DataFrame,它看起来像这样:

Time(minutes)    column2       column1
420 1 5
420 2 10
420 3 8
421 1 4
421 2 9
421 3 7

我知道如何使用 iterrows() 逐行迭代,但是是否有一种有效的方法可以在列 (Time) 中按时间单位进行迭代,以便我可以在每次迭代中处理给定时间的数据?像这样的东西:

time = 420
while(time <= max_time):
temp <- fetch the sub-dataframe for given time
process(temp)
update original df with temp #guaranteed it won't affect any other rows other than the current set of rows
time += 1

最佳答案

您可以使用 .groupby()按时间而不是按行迭代:

代码:

for grp in df.groupby('Time(minutes)'):
...

测试代码:

df = pd.read_fwf(StringIO(u"""
Time(minutes) column2 column1
420 1 5
420 2 10
420 3 8
421 1 4
421 2 9
421 3 7"""), header=1)

print(df)
for grp in df.groupby('Time(minutes)'):
print(grp)

结果:

   Time(minutes)  column2  column1
0 420 1 5
1 420 2 10
2 420 3 8
3 421 1 4
4 421 2 9
5 421 3 7

(420, Time(minutes) column2 column1
0 420 1 5
1 420 2 10
2 420 3 8)
(421, Time(minutes) column2 column1
3 421 1 4
4 421 2 9
5 421 3 7)

关于python - 按时间单位而不是逐行迭代数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48974896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com