我正在尝试使用pandas绘制条形图。 DataTime是我从时间戳得到的索引列。这是表结构:
到目前为止,我写了这个:
import sqlite3
from pylab import *
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt
conn = sqlite3.connect('DEMO2.sqlite')
df = pd.read_sql("SELECT * FROM Data", conn)
df['DateTime'] = df['DATE'].apply(lambda x: dt.date.fromtimestamp(x))
df1 = df.set_index('DateTime', drop=False)
grouped= df1['DateTime'].groupby(lambda x: x.month)
#df1.groupby([df1.index.month, 'DateTime']).count()
grouped.count()
我想要这样的输出:
6月共有4个条目,一个条目以u开头。所以X有4 y有1.相同的7月。
此外,我想使用输出绘制条形图(X和Y条目)。我想要MONTH vs Values条形图
答案 0 :(得分:1)
我会用dict创建DataFrame:
result = pd.DataFrame({'X': g.count(),
'Y': g.apply(lambda x: x.str.startswith('u').sum())})
现在您可以使用绘图方法绘制月份与值。
result.plot()
注意:您可以更有效地创建分组:
grouped = df1['DateTime'].groupby(df1['DateTime'].dt.to_period('M'))
grouped = df1['DateTime'].groupby(df1['DateTime'].dt.month) # if you want Jan-2015 == Jan-2014