跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • pandas 操作求助,数据如下
未分類
15 12 月 2020

pandas 操作求助,数据如下

pandas 操作求助,数据如下

資深大佬 : Scorpiocat 5

import numpy as np
import pandas as pd

df = pd.DataFrame({‘月’:[‘1′,’2′,’3′,’5′,’7’],
‘医院’:[‘人民’,’二院’,’人民’,’二院’,’人民’],
‘销量’:np.arange(1,10,2) })
print(df)

df1 = df.groupby([‘医院’,’月’]).sum()
print(df1)

list = np.arange(1,8,1)
print (list)

#需求:groupby 之后,同一医院的月份没有在 list 中出现(比如人民没有 2,4,5,6 月),则补充缺失月份,并且销量数据为 0,同理下面的医院也进行同样操作

大佬有話說 (10)

  • 資深大佬 : noqwerty

    pandas 操作求助,数据如下

    参考这个答案: https://stackoverflow.com/questions/49646959/how-can-i-include-missing-items-using-groupby-in-pandas

  • 主 資深大佬 : Scorpiocat

    谢谢回答!我运行了一下代码没有问题。但是怎么能把医院中缺失的月份数据补齐去呢?
    @noqwerty

  • 資深大佬 : xyd1205148795

    这个可以吗
    df1 = df.set_index([‘月’,’医院’]).unstack()
    month =pd.DataFrame(np.arange(1,8,1).T,columns=[‘月’])
    month[‘月’] = month[‘月’].astype(‘str’)
    data = month.merge(df1,how=’left’,on=’月’).fillna(0)
    print(data)

  • 資深大佬 : jyyx

    df = pd.DataFrame({‘月’:[‘1′,’2′,’3′,’5′,’7’],
    ‘医院’:[‘人民’,’二院’,’人民’,’二院’,’人民’],
    ‘销量’:np.arange(1,10,2) })
    month_list = [‘1′,’2′,’3′,’4′,’5′,’6′,’7′,’8’]
    df[‘月’] = df[‘月’].astype(‘category’).cat.set_categories(month_list, ordered=True)
    gb = df.groupby([‘医院’,’月’]).sum().fillna(0)
    print(gb)

  • 資深大佬 : princelai

    from itertools import product
    df2 = df1.reindex(index=list(product(df1.index.get_level_values(0).unique(),[f'{i}’ for i in np.arange(1,8,1)])),fill_value=0)

  • 主 資深大佬 : Scorpiocat

    我的想法是先 groupbysum,再对每一家医院的缺失月份数据补齐,这一步就不太明白。
    放出原始数据,看看大家有没有兴趣整理一下。
    pandas 操作求助,数据如下 pandas 操作求助,数据如下
    原始数据
    链接: https://pan.baidu.com/s/1zVaTeBDGzL1q_DjYrHptIQ 提取码: 1d2j

  • 主 資深大佬 : Scorpiocat

    @princelai @jyyx @xyd1205148795 @noqwerty

  • 資深大佬 : princelai

    import pandas as pd

    df = pd.read_excel(“data.xlsx”)

    df1 = df.pivot_table(index=”医院”,columns=”月”,values=”总计”,aggfunc=”sum”).reindex(columns=range(1,13)).fillna(0).cumsum(axis=1)
    df1.columns = [f”{c}月” for c in df1.columns]

  • 資深大佬 : princelai

    你这个 excel 表就能很快实现,一共也没多少数据

  • 主 資深大佬 : Scorpiocat

    @princelai #9 厉害!谢谢!自己刚开始学,就想着实战了…

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具