pandas读取文件,文件某一列分组,条件为列数据字段中包含“一级”为一组,没有“一级”的为一组,将pandas读取到的文件按地市映射表分为各地市文件,再将这个文件当作邮件附件,邮件正文为某地市,有“一级”多少,没有“一级”多少,语言方向:Python,系统环境:Windows


```python import pandas as pd import smtplib from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders def process_and_send_emails(file_path, mapping_table): data = pd.read_csv(file_path) group1 = data[data['column_name'].str.contains('一级')] group2 = data[~data['column_name'].str.contains('一级')] for city, data_subset in data.groupby('city_column_name'): file_name = f'{city}.csv' data_subset.to_csv(file_name, index=False) msg = MIMEMultipart() msg['From'] ='sender@example.com' msg['To'] ='recipient@example.com' msg['Subject'] = f'数据报告 - {city}' body = f'{city},有“一级”{len(group1[data_subset["column_name"].str.contains("一级")])},没有“一级”{len(group2[data_subset["column_name"].str.contains("一级")])}' msg.attach(MIMEText(body, 'plain')) attachment = open(file_name, 'rb') part = MIMEBase('application', 'octet-stream') part.set_payload((attachment).read()) encoders.encode_base64(part) part.add_header('Content-Disposition', "attachment; filename= %s" % file_name) msg.attach(part) s = smtplib.TP('smtp.example.com') s.send_message(msg) s.quit() # 以下是三个改进建议: # 1. 增加异常处理,例如在读取文件、发送邮件等操作时处理可能出现的错误。 # 2. 对邮件内容进行更详细和清晰的格式化,使其更易于阅读。 # 3. 可以考虑将数据处理和邮件发送的部分封装成独立的函数,提高代码的可维护性。 ``` [2024-12-25 01:17:06 | AI写代码神器 | 459点数解答]
- pandas读取文件,文件某一列分组,条件为列数据字段中包含“一级”为一组,没有“一级”的为一组,将pandas读取到的文件按地市映射表分为各地市文件,再将这个文件当作邮件附件,邮件正文为某地市,有“一级”多少,没有“一级”多少,语言方向:Python,系统环境:Windows(459点数解答 | 2024-12-25 01:17:06)141
- 帮我写一个批处理文件,内容如下: 1、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中p=的值改为"参数表.xlsx"中c列对应的值; 2、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中t=的值改为"参数表.xlsx"中b列对应的值; 3、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中s=的值改为"参数表.xlsx"中d列对应的值; 如: 参数表.xlsx中a列a1,a2,a3;b列1.5,2,3;c列为10,20,30;d列100,101,102; 文件.txt中的行 1:l p[54:a1] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=10,ed=1]; 2:l p[57:a2] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=11,ed=1]; 3:l p[67:a3] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=12,ed=1]; 文件.txt修改后为 1:l p[54(811点数解答 | 2024-12-05 12:58:37)225
- 帮我写一个批处理文件,内容如下: 1、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中p=的值改为"参数表.xlsx"中c列对应的值; 2、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中t=的值改为"参数表.xlsx"中b列对应的值; 3、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中s=的值改为"参数表.xlsx"中d列对应的值; 参数表.xlsx中a列a1,a2,a3;b列1.5,2,3;c列为10,20,30;d列100,101,102; 文件.txt数据 1:l p[54:a1] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=10,ed=1]; 2:l p[57:a2] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=11,ed=1]; 3:l p[67:a3] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=12,ed=1]; 文件.txt修改后数据 1:l p[54:a1(531点数解答 | 2024-12-05 13:20:42)233
- 帮我写一个批处理文件,内容如下: 1、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中p=的值改为"参数表.xlsx"中c列对应的值; 2、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中t=的值改为"参数表.xlsx"中b列对应的值; 3、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中s=的值改为"参数表.xlsx"中d列对应的值; 参数表.xlsx中a列a1,a2,a3;b列1.5,2,3;c列为10,20,30;d列100,101,102; 文件.txt数据 1:l p[54:a1] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=10,ed=1]; 2:l p[57:a2] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=11,ed=1]; 3:l p[67:a3] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=12,ed=1]; 文件.txt修改后数据 1:l p[54:a1(495点数解答 | 2024-12-05 13:22:26)203
- c:\python\venv\zzz\scripts\python.exe c:\python\main.py traceback (most recent call last): file "c:\users\意\appdata\local\programs\python\python311\lib\site-packages\urllib3\connection.py", line 199, in _new_conn sock = connection.create_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ file "c:\users\意\appdata\local\programs\python\python311\lib\site-packages\urllib3\util\connection.py", line 85, in create_connection raise err file "c:\users\意\appdata\local\programs\python\pyt(161点数解答 | 2024-10-31 00:39:36)251
- java调用python接口使用的string pythonscriptpathpng = "ruoyi-edu\\src\\main\\java\\com\\gtvote\\edu\\python\\pptutils.py"; processbuilder pbpng = new processbuilder("python", pythonscriptpathpng, pptfilepath, "png"); process ppng = pbpng.start(); // 读取 python 脚本写入的文件 bufferedreader reader = new bufferedreader(new filereader("count.txt")); ppng.waitfor(); 传入的中文是乱码(160点数解答 | 2024-06-06 17:18:39)268
- java调用python接口使用的 string pythonscriptpathpng = "ruoyi-edu\\src\\main\\java\\com\\gtvote\\edu\\python\\pptutils.py"; processbuilder pbpng = new processbuilder("python", pythonscriptpathpng, pptfilepath, "png"); process ppng = pbpng.start(); // 读取 python 脚本写入的文件 bufferedreader reader = new bufferedreader(new filereader("count.txt")); ppng.waitfor(); 传入的中文变成了乱码(344点数解答 | 2024-06-06 17:19:55)381
- java调用python接口使用的 string pythonscriptpathpng = "ruoyi-edu\\src\\main\\java\\com\\gtvote\\edu\\python\\pptutils.py"; processbuilder pbpng = new processbuilder("python", pythonscriptpathpng, pptfilepath, "png"); process ppng = pbpng.start(); // 读取 python 脚本写入的文件 bufferedreader reader = new bufferedreader(new filereader("count.txt")); ppng.waitfor(); java传入的中文值变成了乱码(264点数解答 | 2024-06-06 17:27:09)243
- [ { "id": 1, "parentId": 0, "spread": true, "title": "数据", "path": "", "status": 1, "sort": 1, "parentTitle": null, "children": [ { "id": 2, "parentId": 1, "spread": false, "title": "项目-知识库", "path": "/cms/data/questionprolist.html", "status": 1, "sort": 2, "parentTitle": "数据", (603点数解答 | 2025-04-15 22:48:51)110
- 阅读代码完成填空1~7题 import numpy as np # 生成 1000 个服从正态分布的随机整数(均值 100,标准差 8) np.random.seed(42) num1 = np.random.normal( ______, 8, size=1000).reshape(-1,1). ______ #第1、2空 # 生成 1000 个 1 到 10 之间的随机整数 num2 = np.random.randint(1, ______, size=1000).reshape(-1,1) #第3空 # 合并数据 data = np.__________((num1, num2), axis=_________) #第4、5空 # 保存到 CSV 文件,数据间以逗号间隔,保存格式为整数%d np.savetxt("data.csv", data, delimiter="_________", fmt='%d',header="num1,num2", comments="") #第6空 # 读取 CSV 文(506点数解答 | 2025-03-23 14:32:14)177
- 阅读代码完成填空1~7题 import numpy as np # 生成 1000 个服从正态分布的随机整数(均值 100,标准差 8) np.random.seed(42) num1 = np.random.normal( ______, 8, size=1000).reshape(-1,1). ______ #第1、2空 # 生成 1000 个 1 到 10 之间的随机整数 num2 = np.random.randint(1, ______, size=1000).reshape(-1,1) #第3空 # 合并数据 data = np.__________((num1, num2), axis=_________) #第4、5空 # 保存到 CSV 文件,数据间以逗号间隔,保存格式为整数%d np.savetxt("data.csv", data, delimiter="_________", fmt='%d',header="num1,num2", comments="") #第6空 # 读取 CSV 文(116点数解答 | 2025-03-26 22:22:15)206
- 阅读代码完成填空1~7题 import numpy as np # 生成 1000 个服从正态分布的随机整数(均值 100,标准差 8) np.random.seed(42) num1 = np.random.normal( ______, 8, size=1000).reshape(-1,1). ______ #第1、2空 # 生成 1000 个 1 到 10 之间的随机整数 num2 = np.random.randint(1, ______, size=1000).reshape(-1,1) #第3空 # 合并数据 data = np.__________((num1, num2), axis=_________) #第4、5空 # 保存到 CSV 文件,数据间以逗号间隔,保存格式为整数%d np.savetxt("data.csv", data, delimiter="_________", fmt='%d',header="num1,num2", comments="") #第6空 # 读取 CSV 文(178点数解答 | 2025-03-26 22:26:30)242