Для цикла (вложенного) для value_counts () с пандами - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть DataFrame, как у следующего:

enter image description here

Теперь я хотел бы сделать value_counts(), но проблема у меня естькогда я использую следующий код:

with open('out.csv', 'w') as out:
    for col in df.columns:
        res = df[col].value_counts()\
                     .reset_index()\
                     .rename(columns={col: 'count', 'index': col})\

        res.to_csv(out, index=False)

я получаю следующие неправильные результаты:

enter image description here

Но мне нужноследующее:

enter image description here

1 Ответ

0 голосов
/ 22 ноября 2018

value_counts + melt

Вы можете применить value_counts к каждой серии, а затем расплавить свой фрейм данных:

df = pd.DataFrame({'01-01-2018': [1, 2, 3, 4, 1, 2],
                   '02-01-2018': [4, 2, 3, 1, 3, 1]})

res = df.apply(pd.Series.value_counts).reset_index()
res = pd.melt(res, id_vars='index')
res.columns = ['Code', 'Date', 'Freq']

print(res)

   Code        Date  Freq
0     1  01-01-2018     2
1     2  01-01-2018     2
2     3  01-01-2018     1
3     4  01-01-2018     1
4     1  02-01-2018     2
5     2  02-01-2018     1
6     3  02-01-2018     2
7     4  02-01-2018     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...