Python 分组时间序列帧散点图

Python 分组时间序列帧散点图,python,pandas,matplotlib,plot,time-series,Python,Pandas,Matplotlib,Plot,Time Series,我有一个框架df,其中列是['date','float','int'],以简化。 日期和浮动不是唯一的,因此我将它们分组: dd = df.groupby(['date', 'float']).sum() 问题是,我需要对日期索引重新采样,我必须通过 dd = dd.unstack().resample('B').last() 否则,如果不拆垛,它将下降一个标高 现在我要做的是绘制一个散点,用'date'作为x轴,float'作为y轴,int'作为点的大小。 我正在用我现在的框架努力实现这一

我有一个框架df,其中列是['date','float','int'],以简化。 日期和浮动不是唯一的,因此我将它们分组:

dd = df.groupby(['date', 'float']).sum()
问题是,我需要对日期索引重新采样,我必须通过

dd = dd.unstack().resample('B').last()
否则,如果不拆垛,它将下降一个标高

现在我要做的是绘制一个散点,用'date'作为x轴,float'作为y轴,int'作为点的大小。 我正在用我现在的框架努力实现这一点。 也许我做的预处理是错误的,有一个更干净的方法来实现这一点。
在这方面,

可能没有必要取消堆叠。您可以通过重置索引执行分组和重采样,同时以长格式维护数据帧:

之后,您可以将normal方法与定义点大小的s参数一起使用,如下所示:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# mocking your dataframe
dates = pd.date_range(start="2017-10-10", periods=20)
values = np.random.random(20)
sizes = np.random.randint(1, 80, 20)

df = pd.DataFrame({"dates": dates, 
                   "values": values, 
                   "sizes": sizes})

# plot setup
fig,ax= plt.subplots()
fig.set_size_inches(15, 7)

# scatter
ax.scatter(x=df["dates"].values,
           y=df["values"].values, 
           s=df["sizes"].values)

# setting x axis bounds
ax.set_xlim((df["dates"].min(), df["dates"].max()))

你能提供一些你正在使用的虚拟数据吗?非常感谢。总的来说,我仍然需要围绕重新编制索引展开工作,因为熊猫的力量似乎存在!
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# mocking your dataframe
dates = pd.date_range(start="2017-10-10", periods=20)
values = np.random.random(20)
sizes = np.random.randint(1, 80, 20)

df = pd.DataFrame({"dates": dates, 
                   "values": values, 
                   "sizes": sizes})

# plot setup
fig,ax= plt.subplots()
fig.set_size_inches(15, 7)

# scatter
ax.scatter(x=df["dates"].values,
           y=df["values"].values, 
           s=df["sizes"].values)

# setting x axis bounds
ax.set_xlim((df["dates"].min(), df["dates"].max()))