Itérer sur dataframe avec des conditions

0

La question

D'abord j'ai deux dataframe:

Dataframe Un:

  Column1   Column2
0   X-5       H4
1   X-3       H4
2   X-4       H5
3   X-5       H5
4   X-5       H-3
5   X-3       H-3
6   X-3       H-3
7   X-4       H-4
8   X-4       H-5
9   X-3       H-4
10  X-5       H-3
11  X-3       H-3
12  X-5       H-5
13  X-5       H-3

Dataframe 2:

  Column1   Hours
0   X-5      12
1   X-4      14
2   X-3      10

Je voudrais être en mesure de joindre les deux dataframes en un seul lorsque la condition de "Colonne1" est rencontré, en plus d'être en mesure d'éliminer la répétition de lignes et de compter le nombre de fois qu'ils sont répétés:

Column1 Column2 Repeat  Hours
0   H3    X-3      3    14
1   H-3   X-5      3    12
2   H-4   X-3      2    14
3   H-4   X-4      1    10
4   H-4   X-5      1    12
5   H-5   X-4      2    10
6   H-5   X-5      2    12

Je vous serais reconnaissant si vous pouviez m'aider car je ne sais pas très bien comment le faire. Merci d'avance

dataframe loops merge pandas
2021-11-23 22:17:10
1

La meilleure réponse

1

Est-ce que vous souhaitez?

a.Column2 = a.Column2.str.replace("H(\d)", "H-\\1", regex=True)
pd.merge(a, b, on="Column1").groupby(["Column2", "Column1"], as_index=False).agg(
    Repeat=("Hours", "size"), Hours=("Hours", "first")
)
#   Column2 Column1  Repeat  Hours
# 0     H-3     X-3       3     10
# 1     H-3     X-5       3     12
# 2     H-4     X-3       2     10
# 3     H-4     X-4       1     14
# 4     H-4     X-5       1     12
# 5     H-5     X-4       2     14
# 6     H-5     X-5       2     12
2021-11-23 22:29:34

Si c'était ce que je voulais, une question comme si, en plus de l'ajout d'une seule colonne "heures" je voulais ajouter deux colonnes. mettre un autre exemple, une colonne identique d'heures, mais appelé hours2
gumase

j'ai essayé de la somme de tous les elemnts d'une colonne et aussi pour l'exportation de la nouvelle dataframe "df.un" d'excel, mais je ne peux pas. Comment pouvais-je faire?
gumase

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................