在数据框中每周分组 datetime64 值

数据挖掘 Python 数据集 熊猫
2022-01-31 22:01:35

我想绘制一个每周分组的数据条。我用无意义的数据制作了以下数据框,但它应该可以解决问题。

我想要做的是每周绘制一个条形图(%)

有谁知道我该怎么做?我正在使用 datetime64,所以这可以轻松完成吗?

我想制作一个包含 52x3 条的图表。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import random

date_expected = np.arange('2005-06', '2006-07', dtype= 'datetime64[D]')
cat = ['True','False', 'Maybe']

value = [random.choice(cat) for i in range(len(date_expected))]

data = {'Date_expected': date_expected,  'Value': value }
df = pd.DataFrame(data)
df = pd.DataFrame(data)


print(df.head())
1个回答

这是你想做的吗?我不确定为什么需要 52 x 4列,因为您的Value领域中有 3 个类别。

我所做的是使用dt.week.

import pandas as pd
import numpy as np
import random

date_expected = np.arange('2006-01', '2006-06', dtype= 'datetime64[D]')
cat = ['True','False', 'Maybe']

value = [random.choice(cat) for i in range(len(date_expected))]

data = {'Date_expected': date_expected,  'Value': value }
df = pd.DataFrame(data)
df = pd.DataFrame(data)


df['week'] = df['Date_expected'].dt.week

df.groupby('Value').week.value_counts().unstack(0).plot.bar(figsize=(10,30))