pandas - 基于布尔值列 Altair 的堆积条形图
问题描述
我正在尝试做类似下面的事情。
按日期列分组,例如年或年/月。并根据真/假值可视化堆积条形图。
在 Altair 中解决此问题的最佳方法是什么?
df = pd.DataFrame({
'date': ['20-03-2017', '20-03-2017', '20-03-2018', '21-03-2018', '20-10-2019', '20-03-2019', '1-02-2019', '10-03-2020', '20-06-2020'],
'value': [True, True, True, False, True, False, False, True, False]
})
import altair as alt
alt.Chart(df).mark_bar().encode(
x = 'groupbyyear(date)',
y = 'count(value)',
color = 'value'
)
解决方案
您非常接近:groupbyyear
您可以使用year
time unit transform代替,并且由于您的日期是非标准格式,您可以首先使用 pandasto_datetime
将它们转换为标准日期值。结果如下所示:
import altair as alt
import pandas as pd
df = pd.DataFrame({
'date': ['20-03-2017', '20-03-2017', '20-03-2018', '21-03-2018', '20-10-2019', '20-03-2019', '1-02-2019', '10-03-2020', '20-06-2020'],
'value': [True, True, True, False, True, False, False, True, False]
})
df['date'] = pd.to_datetime(df['date'])
alt.Chart(df).mark_bar().encode(
x = 'year(date):O',
y = 'count(value)',
color = 'value'
)
推荐阅读
- jquery - 防止用户注册不同的电子邮件域
- reactjs - How to fetch data after a specific Interval with useState, useEffect and useCallback in React with proper dependencies
- php - HTML - 输入字段跳出 html 表格
- python - Will per feature LayerNormalization be exported in Keras Sequential model after training?
- pandas - 熊猫列中的开始 - 结束时间
- mysql - Need help in writing query to fethc the results
- python - 如何使用 python 子进程启动strapi服务器
- wordpress - 有没有办法在woocommerce网站上根据时间设置优惠券代码限制。(优惠券代码应仅在一天内的特定时间有效)
- ios - 当 Google IMA 广告即将开始时通知用户(广告在 n 秒内)
- php - Codeigniter 4 ResourceController - 缩小 json 输出