Повторите кадр данных с условиями

0

Вопрос

Изначально у меня есть два фрейма данных:

Фрейм данных A:

  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

Фрейм данных 2:

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

Я хотел бы иметь возможность объединить два кадра данных в один, когда будет выполнено условие "Column1", в дополнение к возможности исключить повторяющиеся строки и подсчитать, сколько раз они повторяются:

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

Я был бы признателен, если бы вы помогли мне, так как я не очень хорошо знаю, как это сделать. Заранее спасибо

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

Лучший ответ

1

Это то, чего ты хочешь?

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

Если бы это было то, что я хотел, вопрос, например, если бы в дополнение к добавлению одного столбца "часы" я хотел добавить два столбца. приведем другой пример, столбец, идентичный часам, но называемый часами 2
gumase

я попытался суммировать все элементы столбца, а также экспортировать новый фрейм данных "df.a" в excel, но не смог. Как я мог это сделать?
gumase

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................