Сравнение данных из двух столбцов в файлах CSV - PullRequest
1 голос
/ 08 июля 2020

Оцените любую помощь по этому поводу. У меня есть 7 файлов CSV (все того же формата), которые я объединил в один кадр. Моя цель здесь - сравнить два столбца из CSV и выяснить, сколько раз слово «Готово» из столбца «Выполнено» появляется в каждой Дате из столбца «Дата». Пока это то, что я написал:

path = r'C:\Users\rock\Desktop\workspace\MTS_subs'          
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    li.append(df)

frame = pd.concat(li, axis=0, ignore_index=True)

counter = frame['Ran'].value_counts()
date_counter = frame['Date'].value_counts()


print(counter, date_counter)

это распечатывает следующее:

Active    1739
Done       840
Name: Ran, dtype: int64 18/06/2020    402
19/06/2020    300
17/06/2020    266
25/06/2020    264
22/06/2020    224
16/06/2020    214
23/06/2020    208
24/06/2020    208
26/06/2020    184
15/06/2020    180
21/06/2020     76
14/06/2020     46
20/06/2020      4
13/06/2020      3
Name: Date, dtype: int64

Итак, во всех 7 CSV слово «Готово» появляется 840 раз, но я бы хотел бы узнать, сколько раз «Готово» появляется в каждую из этих дат.

Я уже давно ломаю голову над этим. Любая помощь или вклад очень приветствуются.

Изображение CSV

1 Ответ

1 голос
/ 08 июля 2020

(frame['Ran'] == 'Done').groupby(frame['Date']).sum() должно сработать. Ниже приведен пример, имитирующий опубликованный снимок экрана.

>>> frame = pd.DataFrame({
...     'Date': ['13/06/2020']*3 + ['15/06/2020']*2 + ['14/06/2020']*12,
...     'Ran': ['Done']*17
... })
>>> frame
          Date   Ran
0   13/06/2020  Done
1   13/06/2020  Done
2   13/06/2020  Done
3   15/06/2020  Done
4   15/06/2020  Done
5   14/06/2020  Done
6   14/06/2020  Done
7   14/06/2020  Done
8   14/06/2020  Done
9   14/06/2020  Done
10  14/06/2020  Done
11  14/06/2020  Done
12  14/06/2020  Done
13  14/06/2020  Done
14  14/06/2020  Done
15  14/06/2020  Done
16  14/06/2020  Done
>>> (frame['Ran'] == 'Done').groupby(frame['Date']).sum()
Date
13/06/2020     3.0
14/06/2020    12.0
15/06/2020     2.0
Name: Ran, dtype: float64

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...