博文

pandas 计算年龄分组计算非重复计数和年龄小于7岁非重复计数

import pandas as pd import numpy as np import janitor sc = (     pd . read_excel ( "/mnt/c/Users/xuefeng/Downloads/非重卡删除.xlsx" , dtype = { 'SC_GLDW_BM' : 'object' , 'YM_BM' : 'object' }).clean_names() ) (     sc .query( 'ym_mc.str.startswith("新冠")' )     .astype({ 'sc_gldw_bm' : 'string' })     .assign( shi = lambda x : x .sc_gldw_bm.str[ 0 : 4 ])     .groupby( 'shi' )     .agg( count = ( 'shi' , 'count' ))     .reset_index()     .sort_values( 'shi' )     .to_excel( "/mnt/c/Users/xuefeng/Downloads/非重卡删除1.xlsx" ) ) test = (     sc .assign( xian = sc .sc_gldw_bm.str[: 6 ], shi = sc .sc_gldw_bm.str.slice( 0 , 4 ), csrq = sc .zjhm.str[ 6 : 14 ])     .query( "sc_gldw_bm.str.startswith('6211') & csrq.str.len()==8 & csrq.str.slice(0,2) in ('19','20')" )     .assign( age = lambda x :( pd . to_datetime ( x .jz_sj) - pd . to_da...

python出生队列接种率

  # -*- coding: utf-8 -*- import math import pandas as pd import numpy as np import janitor shi_bm = pd . DataFrame . from_dict ({ '地区名称' : { 0 : '兰州市' ,           1 : '嘉峪关市' ,           2 : '金昌市' ,           3 : '白银市' ,           4 : '天水市' ,           5 : '武威市' ,           6 : '张掖市' ,           7 : '平凉市' ,           8 : '酒泉市' ,           9 : '庆阳市' ,           10 : '定西市' ,           11 : '陇南市' ,           12 : '临夏回族自治州' ,           13 : '甘南藏族自治州' ,           14 : '兰州新区' },           '地区编码' : { 0 : 6201 ,           1 : 6202 ,           2 : 6203 ,   ...

openai 代理

  import openai # openai.api_key = "abc" # openai.api_base = "http://172.30.48.1:8085/openai/v1" openai . proxy = {     "http" : "http://172.30.48.1:7890" ,     "https" : "http://172.30.48.1:7890" } openai . api_key = "sk-" #获取模型名称 model_list = [ item [ 'id' ] for item in openai . Model . list ()[ 'data' ]] # response = openai.ChatCompletion.create( #             model="gpt-3.5-turbo", #             messages=[ #                 {"role": "system", "content": "Describe a short paragraph about tamil."}, #             ] #         ) # for solution in response.choices: #     print(solution.message.content) def get_completion ( prompt , model = 'gpt-3.5-turbo' ):     messages = [{ 'role' : "user" , "content" : prompt }]     if model in model_list :         respo...

pandas 使用np完成条件赋值

import pandas as pd import numpy as np import janitor df = (     pd . read_excel ( r "/mnt/c/users/xuefeng/desktop/rk.xlsx" )     .clean_names()     .astype({ 'xt_rksj' : 'datetime64[ns]' })     .query( "xt_rkjgdm.notnull()" ) ) df = (     df .assign(     gp = np . select (         [             df .sum_x_rksl_ < 10000 ,             ( df .sum_x_rksl_ >= 10000 ) & ( df .sum_x_rksl_ < 20000 ),             df .sum_x_rksl_ >= 20000 ,         ],         [ '低' , '中' , '高' ]         , default = '不详'     ) ) ) (     df     .assign( grp = np . select ([ df .xt_rksj <= '2023-01-17' , df .xt_rksj > '2023-01-17' ],                           ...

pyramid_chart解决中文乱码

library(tidyverse) library(lubridate) library(showtext) library(janitor) library(openxlsx) library(magrittr) library(hablar) library(readxl) library(ggcharts) showtext_auto(enable = TRUE) df <- readxl::read_excel('/mnt/c/users/xuefe/Downloads/grda_fnl_tj.xlsx',skip = 1) %>%    pivot_longer(cols=`0岁`:`100岁`,names_to = 'age',values_to = 'count') %>%    filter(单位=='合计' & age!='0岁')  %>%    mutate(age=str_remove_all(age,'岁')) %>%    convert(num(age)) df_m <- df %>%    mutate(age_group=cut(age, breaks =seq(0,110,by=3),include.lowest = F,right=T)) %>%    group_by(age_group) %>%    summarise(sumn=sum(count,na.rm = T)) %>%    mutate(sex='男性') # right=T 左开右闭 # rihht=F 左闭右开 p_1 <- ggplot(data = df_m) +   geom_bar(aes(age_group,sumn), fill = 'skyblue', stat="identity", position="dodge")+   xlab('年龄组') +   ylab('男性人口数')+   coord_flip()  df <- readxl::...

Quarto使用docx支持中文

 --- title: "Test" format: docx editor: visual --- pdf需要指定中文字体,使用fc-list :lang=zh查看已安装的字体。 可以使用 --- title: "test" format: pdf editor: visual documentclass: scrreprt pdf-engine: xelatex CJKmainfont: WenQuanYi Micro Hei --- 这种方法因为仅指定一种字体, 效果不太美观。可以更换 其他方式 --- title: "测试" author: "李东风" date: "2023-04-26" lang: zh format:   html:     toc: true     toc-location: body     toc-depth: 3     number-sections: true     html-math-method: katex   docx:     toc: true     toc-depth: 3     number-sections: true   pdf:     documentclass: article     toc: true     toc-depth: 3     include-in-header:        text: |         \usepackage{ctex}         \usepackage{amsthm,mathrsfs} ---

在 Pandas DataFrame 中增加总计行(列)

  def add_total ( df , axis = 0 ):     """     在 Pandas DataFrame 中增加总计行(列)     参数:         df (pandas.DataFrame):需要增加总计行(列)的 DataFrame。         axis (int, optional): 0 表示对列进行求和,增加总计行;1 表示对行进行求和,增加总计列。默认为0。     抛出:         ValueError:如果 axis 参数不为 0 或 1,则报错。     返回:         pandas.DataFrame:增加了总计行(列)的新 DataFrame。     """     df = df .copy()     if axis == 0 :         df .loc[ 'Total' ] = df .sum( axis = 0 , numeric_only = True )     elif axis == 1 :         df [ 'Total' ] = df .sum( axis = 1 , numeric_only = True )     else :         raise ValueError ( 'axis parameter should be 0 or 1' )     return df # 0 增加1行对列进行求和,增加1 列对行进行求和 df = (     df . pipe ( add_total , axis = 1 ) )