如何按索引按数据帧分组

2024-10-03 23:21:39 发布

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

现在我有一个数据帧“df”,如下所示:

In [28]: df[:100]
Out[28]: 
       distkm     modlat     modlon  reallat  reallon         time
0    9.325590  42.423024 -70.512309  42.5040 -70.5419  731800.5514
1    9.286476  42.416112 -70.519175  42.4956 -70.5539  731800.6319
0    4.456535  42.423877 -70.408784  42.4292 -70.4626  731802.0660
1    6.393979  42.405980 -70.367245  42.4297 -70.4382  731802.1556
2    7.447289  42.389719 -70.343267  42.4259 -70.4196  731802.2312
0    4.456535  42.423877 -70.408784  42.4292 -70.4626  731802.0660
1    6.393979  42.405980 -70.367245  42.4297 -70.4382  731802.1556
2    7.447289  42.389719 -70.343267  42.4259 -70.4196  731802.2312
3    7.329755  42.370420 -70.340029  42.4134 -70.4077  731802.3208
4    6.817408  42.355624 -70.337595  42.3942 -70.4021  731802.3972
0     ...
1     ...

我想把数据帧分开“测向指数“比如:

     distkm     modlat     modlon  reallat  reallon         time
0    9.325590  42.423024 -70.512309  42.5040 -70.5419  731800.5514
1    9.286476  42.416112 -70.519175  42.4956 -70.5539  731800.6319
     distkm    modlat     modlon   reallat  reallon         time
0    4.456535  42.423877 -70.408784  42.4292 -70.4626  731802.0660
1    6.393979  42.405980 -70.367245  42.4297 -70.4382  731802.1556
2    7.447289  42.389719 -70.343267  42.4259 -70.4196  731802.2312
     distkm    modlat     modlon   reallat  reallon         time
0    4.456535  42.423877 -70.408784  42.4292 -70.4626  731802.0660
1    6.393979  42.405980 -70.367245  42.4297 -70.4382  731802.1556
2    7.447289  42.389719 -70.343267  42.4259 -70.4196  731802.2312
3    7.329755  42.370420 -70.340029  42.4134 -70.4077  731802.3208
4    6.817408  42.355624 -70.337595  42.3942 -70.4021  731802.3972

然后把这些小的“df”画成一个图形。 我该怎么做? 我试过“群比”(测向指数)“但结果并不是我想要的,它只是把所有相同的索引号放在一起。你知道吗


Tags: 数据in图形dftime指数outdistkm
1条回答
网友
1楼 · 发布于 2024-10-03 23:21:39

[从注释中迁移]

我对绘图知之甚少,但ISTM您可以按您所希望的方式使用groupby[NB:这假设您的索引由整数组成,而不是字符串如果我错了,用'0'替换0]:

>>> grouped = df.reset_index().groupby(((df.index == 0)*1).cumsum())
>>> for n,g in grouped:
...     print g
...     
   index    distkm     modlat     modlon  reallat  reallon         time
0      0  9.325590  42.423024 -70.512309  42.5040 -70.5419  731800.5514
1      1  9.286476  42.416112 -70.519175  42.4956 -70.5539  731800.6319
   index    distkm     modlat     modlon  reallat  reallon         time
2      0  4.456535  42.423877 -70.408784  42.4292 -70.4626  731802.0660
3      1  6.393979  42.405980 -70.367245  42.4297 -70.4382  731802.1556
4      2  7.447289  42.389719 -70.343267  42.4259 -70.4196  731802.2312
   index    distkm     modlat     modlon  reallat  reallon         time
5      0  4.456535  42.423877 -70.408784  42.4292 -70.4626  731802.0660
6      1  6.393979  42.405980 -70.367245  42.4297 -70.4382  731802.1556
7      2  7.447289  42.389719 -70.343267  42.4259 -70.4196  731802.2312
8      3  7.329755  42.370420 -70.340029  42.4134 -70.4077  731802.3208
9      4  6.817408  42.355624 -70.337595  42.3942 -70.4021  731802.3972

对于每个组,我们可以再次设置索引,例如:

>>> g.set_index("index")
         distkm     modlat     modlon  reallat  reallon         time
index                                                               
0      4.456535  42.423877 -70.408784  42.4292 -70.4626  731802.0660
1      6.393979  42.405980 -70.367245  42.4297 -70.4382  731802.1556
2      7.447289  42.389719 -70.343267  42.4259 -70.4196  731802.2312
3      7.329755  42.370420 -70.340029  42.4134 -70.4077  731802.3208
4      6.817408  42.355624 -70.337595  42.3942 -70.4021  731802.3972

相关问题 更多 >