【发布时间】:2022-01-06 15:15:42
【问题描述】:
鉴于以下pandasDataFrame,显示具有每个名称类别的离散时间桶的时间序列图的惯用方式是什么?
| Name | Type |
|---|---|
| time | datetime64 |
| name | object |
| value | float64 |
我当前的解决方案需要一个循环来提取 DataFrame 并为每个名称类别计算 max 聚合。
import pandas as pd
import matplotlib.pyplot as plt
raw_df = pd.read_csv('...')
raw_df['time'] = raw_df['time'].astype('datetime64[ns]')
names = raw_df['name'].unique()
names.sort()
fig, ax = plt.subplots()
for name in names:
df = raw_df.query(f'name == "{name}"').set_index('time').resample('10T').max()
df.plot(ax = ax, label=name)
【问题讨论】:
-
sns.lineplot(data=raw_df, x='time', y='value', hue='name')seaborn 是 matplotlib 的高级 api
标签: python pandas dataframe matplotlib time-series