Générer des lignes dans un dataframe pandas pour compenser les valeurs manquantes d'une colonne (ou de plusieurs colonnes)

Debjit Bhowmick

J'ai le dataframe suivant.

   hour sensor_id hourly_count 
0     1       101          651
1     1       102           19
2     2       101          423
3     2       102           12
4     3       101          356
5     4       101           79
6     4       102           21
7     5       101          129
8     6       101          561

Notez que pour sensor_id 102, il n'y a pas de valeurs pour hour = 3. Cela est dû au fait que les capteurs ne génèrent pas une ligne séparée de données si le hourly_count est égal à zéro. Cela signifie que le capteur 102 devrait avoir hourly_counts = 0 à hour = 3, mais c'est juste la façon dont les données d'origine ont été collectées.

Je souhaiterais idéalement un code qui comble cette lacune. Il faut donc comprendre que s'il y a 2 capteurs, chaque capteur doit avoir un enregistrement horaire, et sinon, insérer une ligne dans la trame de données pour ce capteur pour cette heure et remplir la colonne hourly_count à cette ligne comme 0.

   hour sensor_id hourly_count 
0     1       101          651
1     1       102           19
2     2       101          423
3     2       102           12
4     3       101          356
5     3       102            0
6     4       101           79
7     4       102           21
8     5       101          129
9     5       102            0
10    6       101          561
11    6       102            0

Toute aide est vraiment appréciée.

ours occupé

En utilisant DataFrame.reindex, vous pouvez définir explicitement votre index. Ceci est utile s'il vous manque des données des deux capteurs pendant une heure donnée. Vous pouvez également prolonger l'heure au-delà de ce que vous avez. Dans l'exemple suivant, il s'étend jusqu'à l'heure 8.

new_ix = pd.MultiIndex.from_product([range(1,9), [101, 102]], names=['hour', 'sensor_id'])
df_new = df.set_index(['hour', 'sensor_id'])
df_new.reindex(new_ix, fill_value=0).reset_index()

Production:

    hour  sensor_id  hourly_count
0      1        101           651
1      1        102            19
2      2        101           423
3      2        102            12
4      3        101           356
5      3        102             0
6      4        101            79
7      4        102            21
8      5        101           129
9      5        102             0
10     6        101           561
11     6        102             0
12     7        101             0
13     7        102             0
14     8        101             0
15     8        102             0

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

TOP Lista

  1. 1

    ¿Cómo ocultar la aplicación web de los robots de búsqueda? (ASP.NET)

  2. 2

    Pagination class not getting applied in html

  3. 3

    Pandas의 CSV 파일을 Pandas 데이터 프레임으로 가져 오기

  4. 4

    Opción de máquina virtual no reconocida 'MaxPermSize = 512m' cuando se ejecuta Zeppelin

  5. 5

    OpenQA.Selenium.NoSuchElementException-C # 셀레늄

  6. 6

    OAuth 2.0 utilizando Spring Security + WSO2 Identity Server

  7. 7

    ¿Cómo pintar el Dropline de un RowHeader-JTable en el Main-JTable durante un DragAndDrop?

  8. 8

    Joindre avec des valeurs séparées par des virgules dans SQL Server Compact ne fonctionne pas

  9. 9

    Recherche de la position d'index d'une valeur dans r dataframe

  10. 10

    GPU를 사용하여 ffmpeg 필터의 처리 속도를 가속화하는 방법은 무엇입니까?

  11. 11

    caída condicional de filas desde un marco de datos de pandas

  12. 12

    python: ¿por qué dice variable indefinida cuando llamo función?

  13. 13

    Error: la ejecución falló para la tarea ': app: compileDebugJavaWithJavac'. java.io.FileNotFoundException:

  14. 14

    ¿Cómo especificar el puerto en el que se aloja una aplicación ASP.NET Core?

  15. 15

    Que signifie Decimal (-1)?

  16. 16

    Link library in Visual Studio, why two different ways?

  17. 17

    ¿Cómo determinar la menor cantidad de incrementos de Y necesarios para trazar un múltiplo de 5 en una gráfica?

  18. 18

    nested observables executed one after the other after termination

  19. 19

    uitableview delete button image in iOS

  20. 20

    C # cómo eliminar la última línea de un bucle

  21. 21

    R - ggplot2 - use raster as greyscale basemap

CalienteEtiquetas

Archivo