【问题标题】:For loop (nested) for value_counts() with Pandas带有 Pandas 的 value_counts() 循环(嵌套)
【发布时间】:2018-11-22 09:26:11
【问题描述】:
我有一个DataFrame,如下所示:
现在我想做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)
我得到以下错误结果:
但我需要的是以下内容:
【问题讨论】:
标签:
python
python-3.x
pandas
dataframe
for-loop
【解决方案1】:
您可以将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