尝试从 pandas 数据框中绘制数据
Trying to plot Data from a pandas dataframe
我正在尝试使用 pandas 数据框构建一个简单的折线图。数据框包含一个带有日期条目的列。每个日期都有几行数据。我想按日期对数据进行分组,计算每组的条目数,并使用 altair 折线图显示数据。
我尝试了多种方法,但找不到解决方案。我认为将数据复制到新的数据框中是最好的解决方案。
Dataframe 是通过以下函数从 csv 填充的
def read_csv(rows):
parse_dates = ['Gemeldet_Am']
data = pd.read_csv(path+file,nrows=rows, parse_dates=parse_dates)
data['Gemeldet_Am'] = pd.to_datetime(data['Gemeldet_Am']).dt.date
return data
数据帧的打印如下所示:
![在此处输入图片描述][1]
我想按蓝色框内的所有内容进行分组,然后统计红色框内的数据。然后 Altair 图表应该显示每一天(蓝色数据)红色数据的总和
这是一个折线图示例,其中计数按日期分组,数据与您的相似:
import altair as alt
import pandas as pd
df = pd.DataFrame({
'date': pd.to_datetime(['2021-01-13', '2021-01-13', '2021-01-13', '2021-01-13',
'2021-01-14', '2021-01-14', '2021-01-14', '2021-01-15',
'2021-01-15', '2021-01-16', '2021-01-17', '2021-01-17']),
'SAG': ['SAG-2101-1350', 'SAG-2101-1352', 'SAG-2101-1355', 'SAG-2101-1370',
'SAG-2101-1373', 'SAG-2101-1378', 'SAG-2101-1382', 'SAG-2101-1385',
'SAG-2101-1391', 'SAG-2101-1393', 'SAG-2101-1394', 'SAG-2101-1397']
})
alt.Chart(df).mark_line().encode(
x='date:T',
y='count():Q'
)
我正在尝试使用 pandas 数据框构建一个简单的折线图。数据框包含一个带有日期条目的列。每个日期都有几行数据。我想按日期对数据进行分组,计算每组的条目数,并使用 altair 折线图显示数据。
我尝试了多种方法,但找不到解决方案。我认为将数据复制到新的数据框中是最好的解决方案。 Dataframe 是通过以下函数从 csv 填充的
def read_csv(rows):
parse_dates = ['Gemeldet_Am']
data = pd.read_csv(path+file,nrows=rows, parse_dates=parse_dates)
data['Gemeldet_Am'] = pd.to_datetime(data['Gemeldet_Am']).dt.date
return data
数据帧的打印如下所示:
![在此处输入图片描述][1]
我想按蓝色框内的所有内容进行分组,然后统计红色框内的数据。然后 Altair 图表应该显示每一天(蓝色数据)红色数据的总和
这是一个折线图示例,其中计数按日期分组,数据与您的相似:
import altair as alt
import pandas as pd
df = pd.DataFrame({
'date': pd.to_datetime(['2021-01-13', '2021-01-13', '2021-01-13', '2021-01-13',
'2021-01-14', '2021-01-14', '2021-01-14', '2021-01-15',
'2021-01-15', '2021-01-16', '2021-01-17', '2021-01-17']),
'SAG': ['SAG-2101-1350', 'SAG-2101-1352', 'SAG-2101-1355', 'SAG-2101-1370',
'SAG-2101-1373', 'SAG-2101-1378', 'SAG-2101-1382', 'SAG-2101-1385',
'SAG-2101-1391', 'SAG-2101-1393', 'SAG-2101-1394', 'SAG-2101-1397']
})
alt.Chart(df).mark_line().encode(
x='date:T',
y='count():Q'
)