假设我有一个 Python 列表,其中每个元素代表一天以及商店中有多少产品可用:
l = [
[a, a, a, b, c],
[a, a, b, b, c],
[a, b, b, c, c]
]
Run Code Online (Sandbox Code Playgroud)
我想创建一个摘要,显示:
Day 1: a:3, b:1, c:1
Day 2: a:2, b:2, c:1
Day 3: a:1, b:2, c:2
Run Code Online (Sandbox Code Playgroud)
我需要它的格式,然后我可以绘制产品随时间变化的可用性图表。
我试过这个:
Day 1: a:3, b:1, c:1
Day 2: a:2, b:2, c:1
Day 3: a:1, b:2, c:2
Run Code Online (Sandbox Code Playgroud)
但这会计算所有列表中的元素,而不是返回每个子列表的结果。
谢谢大家,这是最终的解决方案,包括图表:
from collections import Counter
d = {i:Counter(sublist) for i, sublist in enumerate(l, start=1)}
df = pd.DataFrame.from_dict(d, orient='index').reset_index()
df = df.melt('index', var_name='product', value_name='vals')
df['product'] …Run Code Online (Sandbox Code Playgroud)