我有一个带有一些财务操作的熊猫数据框。列之一是“日期”。我将每日数据重新采样了几个月。
transfers_all.set_index(pd.DatetimeIndex(transfers_all['Date']), inplace = True)
monthly = transfers_all.resample('M')
但是,当我尝试像这样用Seaborn绘制数据时
monthly_plot = sns.lineplot(data = monthly,
x = 'Date',
y = 'Amount'
)
我得到一个错误:
AttributeError:“ DatetimeIndexResampler”对象没有属性“ get”
如果我尝试绘制整个数据框,则x轴显示天,但是我想将它们分为几个月。是否可以从Seaborn内部进行重新采样或让Seaborn处理我的重新采样数据?
运行print (transfers_all.head().to_dict())
会给出以下输出:
{'附加说明':{Timestamp('2017-01-02 00:00:00'):nan},'Data faktur':{Timestamp('2017-01-02 00:00:00') :nan},'Data faktury':{Timestamp('2017-01-02 00:00:00'):'-'},'Date':{Timestamp('2017-01-02 00:00:00' ):Timestamp('2017-01-02 00:00:00')},'费用说明':{Timestamp('2017-01-02 00:00:00'):'Opłataza zleceniestałe'},'费用类别(标签)':{Timestamp('2017-01-02 00:00:00'):'ADMIN'},'Komu zwrot':{Timestamp('2017-01-02 00:00:00') :'KG'},'Kwota(PLN)':{Timestamp('2017-01-02 00:00:00'):3.0},'Kwota VAT(PLN)':{Timestamp('2017-01-02 00:00:00'):nan},'Kwota w walucie oryginalnej':{Timestamp('2017-01-02 00:00:00'):nan},'Nazwa sprzedawcy':{Timestamp('2017-01 -02 00:00:00'):'-'},'Numer faktury':{Timestamp('2017-01-02 00:00:00'):'-'},'Opis wydatku':{Timestamp( '2017-01-02 00:00:00'):nan}}
答案 0 :(得分:0)
我认为对于sum
中的列,需要一些聚合函数,例如mean
,DatetimeIndex
和reset_index
:
transfers_all['Date'] = pd.to_datetime(transfers_all['Date'])
monthly = transfers_all.resample('M', on='Date').size().reset_index(name='count')
monthly_plot = sns.lineplot(data = monthly,
x = 'Date',
y = 'count'
)