[程序员小飞]五年经验总结出来的,Python处理Excel的万能公式,新手一学就会

Поделиться
HTML-код
  • Опубликовано: 1 окт 2024
  • 源码链接:wwx.lanzoux.co...
    本次课程是小飞通过自己的python经验总结出来的万能公式,期间包括了读取excel,新增列,修改列,拼接表格,保存表格等内容。
    非常适合新手来学习,大家之后只要按照公式来写自己的代码,基本上能够完成自己的代码编写。

Комментарии • 82

  • @sansbingo
    @sansbingo 3 года назад +5

    dfs = []
    for root,dirs,files in os.walk('.'):
    for file in files:
    if file.endswith('.xlsx'): # 读取所有文件名为.xlsx的文件
    if file.startswith('~$'): # 排除XLSX暂存文件即以~$开头的xlsx文件
    continue
    else:
    df = pd.read_excel(file)
    dfs.append(df)
    楼主这一段需要调整一下,否则文件目录下的xlsx暂存文件会导致报错。

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      谢谢你的意见,这个是我没有考虑到的

    • @sansbingo
      @sansbingo 3 года назад +3

      @@learncode_byxiaofei dfs = []
      for root,dirs,files in os.walk('.'):
      for file in files:
      if file.endswith('.xlsx'): # 读取所有文件名为.xlsx的文件
      if file.startswith('~$'): # 排除XLSX暂存文件即以~$开头的xlsx文件
      continue
      elif file.startswith('项目组综合'): # 排除已经生成的目标文件
      continue
      else:
      df = pd.read_excel(file)
      dfs.append(df)
      又改进了一下,需要排除已经生成的目标文件。

    • @davidwu6577
      @davidwu6577 3 года назад

      @@sansbingo 的确有用,多谢!

  • @强国学习
    @强国学习 3 года назад

    dfs = []
    for root,dirs,files in os.walk('.'):
    for file in files:
    if file.endswith('.xlsx') or file.endswith('.xls') :
    df = pd.read_excel(file)
    dfs.append(df)
    这个只能读取目录下所有的工作簿的第一张表~~ 一个工作簿下有多张sheet 需要读取..工作簿其他sheet_name 表 就不会读取? 怎么改?

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      用pandas里面的ExcelFile函数,你可以读取出一张表里面有多少张sheet,然后循环

  • @开朗的网友-q6c
    @开朗的网友-q6c 2 года назад

    我想写一个自动给表作业打分,检查每个单元格的属性,跟100分的标准文件比对,然后算出被打分文件的与标准文件的不同点,将不同点与标准文件比对计算出分数,生成新的表格文件,新的表格文件里标注不同点,以及最底下显示分数😥

    • @learncode_byxiaofei
      @learncode_byxiaofei  Год назад +1

      遍历相关的表格,然后取得每个单元格的内容,去比较,规划好你的标准,获得分数

  • @huanyanginverter6516
    @huanyanginverter6516 2 года назад

    panda module 导入这个模块,执行函数,会报错。
    Traceback (most recent call last):
    File "/Users/zengyongping/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/pandas/compat/_optional.py", line 138, in import_optional_dependency
    module = importlib.import_module(name)
    File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File "", line 1030, in _gcd_import
    File "", line 1007, in _find_and_load
    File "", line 984, in _find_and_load_unlocked
    ModuleNotFoundError: No module named 'openpyxl'
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
    File "/Users/zengyongping/PycharmProjects/pythonProject/Excel/PandasSummary.py", line 15, in
    df = pd.read_excel(file)
    File "/Users/zengyongping/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/pandas/util/_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
    File "/Users/zengyongping/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/pandas/io/excel/_base.py", line 457, in read_excel
    io = ExcelFile(io, storage_options=storage_options, engine=engine)
    File "/Users/zengyongping/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/pandas/io/excel/_base.py", line 1419, in __init__
    self._reader = self._engines[engine](self._io, storage_options=storage_options)
    File "/Users/zengyongping/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/pandas/io/excel/_openpyxl.py", line 524, in __init__
    import_optional_dependency("openpyxl")
    File "/Users/zengyongping/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/pandas/compat/_optional.py", line 141, in import_optional_dependency
    raise ImportError(msg)
    ImportError: Missing optional dependency 'openpyxl'. Use pip or conda to install openpyxl.
    进程已结束,退出代码为 1
    这是报错内容。。。好像是这个模块出错。。。帮助解决下,谢谢

  • @zjason7582
    @zjason7582 2 года назад

    你好小飞,我是python小白,觉得你的视频很好,请问第一行panda module在哪下?

    • @learncode_byxiaofei
      @learncode_byxiaofei  2 года назад

      你下载个pycharm,然后搜一下pycharm如何安装python第三方库,应该有明确的解答

  • @晃彰吳
    @晃彰吳 3 года назад +1

    謝謝您的教學。

  • @huagao5467
    @huagao5467 3 года назад +1

    小飞,在澳洲支持你

  • @强国学习
    @强国学习 3 года назад

    dfs = []
    for root,dirs,files in os.walk('.'):
    for file in files:
    if file.endswith('.xlsx'):
    df = pd.read_excel(file)
    dfs.append(df)
    老师!以上怎么改,能同时读取所有的.xlsx\.xls ~实际当中我们经常碰到两种格式混在一起!转换的话,就麻烦了~

    • @强国学习
      @强国学习 3 года назад

      上面的 问题我已经解决了
      dfs = []
      for root,dirs,files in os.walk('.'):
      for file in files:
      if file.endswith('.xlsx') or file.endswith('.xls') :
      df = pd.read_excel(file)
      dfs.append(df)
      新问题来了~怎么在合并后的表格里面显示 源表的名称和 sheet_name ,求助老师~

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      file.endswith('.xlsx') or file.endswith('.xls')

    • @强国学习
      @强国学习 3 года назад

      @@learncode_byxiaofei 求助老师~ 怎么在合并后的表格 用一列来显示 数据原表来源,也就是合并前的表名&sheet_name....concat(keys = ?)

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      @@强国学习 这个你就把之前的表名保存下来,然后在新表新建一列,赋值进去

    • @强国学习
      @强国学习 3 года назад

      @@learncode_byxiaofei 老师您好!我小白,,,不懂怎么弄~能直接告诉我代码吗?

  • @Zzzzzzz861
    @Zzzzzzz861 2 года назад

    代码发我一下呗

  • @felixc4429
    @felixc4429 3 года назад

    算法推荐的优质频道,跟着练习学知识挺好,不做收藏党

  • @_-_-89
    @_-_-89 3 года назад

    飞哥 我想做一个足球赛事实时盘口赔率爬虫软件 设置条件之后 软件可以提醒的。问一下 大概需要多少钱可以做

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      不好意思,我暂时不接这么复杂的项目。但是如果你去找其他的团队做的话,需要花费3、4万吧,具体的我也不清楚的

    • @_-_-89
      @_-_-89 3 года назад

      程序员小飞 好的 谢谢飞哥

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      @@_-_-89 客气啦

    • @章鱼-e4p
      @章鱼-e4p 3 года назад

      爬虫我擅长啊

  • @Wo0d223
    @Wo0d223 3 года назад

    我一开始还以为是前15课程的代码总结呢,谢谢

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      当然不可能了,前15节的所有代码还是有点两基的

  • @laitian3504
    @laitian3504 3 года назад

    有点看不懂,为什么项目组1要改成项目组3,而表2的项目组2不用改成项目组3?求解一下,谢谢

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      具体讲详细点?改这些只不过是一些需求

    • @laitian3504
      @laitian3504 3 года назад

      @@learncode_byxiaofei if group=="项目组1":
      row['项目组']='项目组3'
      bonus=0
      这一段是处理项目组1的。项目组2的是如何处理的,要不要也改成项目组3呀?
      这里看不明白?

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      ​@@laitian3504 就去判断group是否等于'项目2',然后再去做相关操作

    • @laitian3504
      @laitian3504 3 года назад

      @@learncode_byxiaofei 明白!

  • @welibala18
    @welibala18 3 года назад

    👍

  • @钱俊-m7p
    @钱俊-m7p 3 года назад

    小飞,请问如何合并一个excel文件中多张sheet的內容,如果表格的表头内容不同又该如何合并?请帮忙解答,谢谢!

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      其实一样,read_excel里面可以指明要读取的sheet名称,然后表头内容不一样的,读进来之后再去处理成一样的

    • @钱俊-m7p
      @钱俊-m7p 3 года назад

      @@learncode_byxiaofei 谢谢!我回头试试,有问题再请教。

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      @@钱俊-m7p 好的

    • @wuniwanzi
      @wuniwanzi 2 года назад

      那只能活在梦里

  • @xujason4607
    @xujason4607 3 года назад

    又看了一遍,非常有用。

  • @rogeryang18
    @rogeryang18 3 года назад

    这个必须赞,超级实用!

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад +1

      哈哈哈,我也觉得,新手来说,基本上都囊括了

  • @CiceroChen
    @CiceroChen 3 года назад

    超讚,很實用!

  • @felixc4429
    @felixc4429 3 года назад

    问下小飞老师,这个iterrows()如果数据量大了速度会不会很慢

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      数据量大的话,可能会有稍微的影响。但是你的数据量是多大?pandas里面有其他的优化方式

    • @felixc4429
      @felixc4429 3 года назад

      @@learncode_byxiaofei 比如20个Excel文件2千万的数据~

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      ​@@felixc4429 可能不能遍历,但是pandas有其他的方式的,如果pandas不行的话,你可以用numpy去处理

    • @felixc4429
      @felixc4429 3 года назад

      @@learncode_byxiaofei 好的 我研究下 感谢

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      @@felixc4429 ok

  • @baomiTV
    @baomiTV 3 года назад

    更新太快了,平时在学R和sas,你的视频要找个时间好好追了

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      谢谢,你学R是用来干嘛?数据分析还是什么?

    • @baomiTV
      @baomiTV 3 года назад

      @@learncode_byxiaofei 对,R,sas和python,30岁重新回学校学数据分析转行

    • @oscarcheung930
      @oscarcheung930 3 года назад +1

      @@baomiTV 握手。我也是三十出頭,自學Python想轉行

    • @bravelxl
      @bravelxl 3 года назад

      @@baomiTV 和你一样,我33了重回学校学数据分析...

    • @baomiTV
      @baomiTV 3 года назад

      @@bravelxl up主讲了很多coursera上python没有提到的知识点,我上的data science master program也没有系统性的教python,上课都是R和SAS为主,但是找工作这三个都要会

  • @boringjohnbj6683
    @boringjohnbj6683 3 года назад

    来了

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      对呀,对呀,对呀

    • @boringjohnbj6683
      @boringjohnbj6683 3 года назад

      @@learncode_byxiaofei 那个,以后公众号是只拿来私聊用吗😂

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      @@boringjohnbj6683 当然不是啦,不过我现在还没想好怎么用微信公众号。

  • @zml4264
    @zml4264 3 года назад

    请这小飞视频里的编辑器是什么能否告知。

  • @justkflesh
    @justkflesh 2 года назад

    不知道為何過不了驗證下載源碼

  • @cheungjsonking1883
    @cheungjsonking1883 3 года назад

    打卡,下载收藏备用.

  • @cheungjsonking1883
    @cheungjsonking1883 3 года назад

    看完了,有点一头雾水, 我实在是太新手了...

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      那你应该再去看看我python的基础课程了,可能你还没有入门。

    • @cheungjsonking1883
      @cheungjsonking1883 3 года назад

      @@learncode_byxiaofei 恩, 最新在学那些最基础的, 你前面视频等看完基础再回头再看一次了.

    • @learncode_byxiaofei
      @learncode_byxiaofei  3 года назад

      @@cheungjsonking1883 ok