小编DGS*_*DGS的帖子

分组并查找属于 n 个唯一最大值的所有值

我的数据框:

data = {'Input':[133217,133217,133217,133217,133217,133217,132426,132426,132426,132426,132426,132426,132426,132426],
 'Font':[30,25,25,21,20,19,50,50,50,38,38,30,30,29]}

     Input  Font
0   133217    30
1   133217    25
2   133217    25
3   133217    21
4   133217    20
5   133217    19
6   132426    50
7   132426    50
8   132426    50
9   132426    38
10  132426    38
11  132426    30
12  132426    30
13  132426    29
Run Code Online (Sandbox Code Playgroud)

我想创建一个仅包含Font中属于 3 个唯一最大值的值的新数据框。例如,输入 133217 的 3 个最大字体值为 30、25、21。

预期输出:

op_data = {'Input':[133217,133217,133217,133217,132426,132426,132426,132426,132426,132426,132426],
 'Font':[30,25,25,21,50,50,50,38,38,30,30]}

     Input  Font
0   133217    30
1   133217    25
2   133217    25
3   133217    21
4   132426 …
Run Code Online (Sandbox Code Playgroud)

python pandas-groupby

6
推荐指数
1
解决办法
135
查看次数

如何解析EML格式文件并提取元数据信息

我有一个带有一些附件的EML 文件。我想读取 EML 文件的文本内容并提取元数据,例如:sender, from, cc, bcc, subject。我也想下载附件。在下面的代码的帮助下,我只能提取电子邮件正文中的信息/文本内容。

import email
from email import policy
from email.parser import BytesParser
import glob
file_list = glob.glob('*.eml') # returns list of files
with open(file_list[2], 'rb') as fp:  # select a specific email file from the list
    msg = BytesParser(policy=policy.default).parse(fp)
text = msg.get_body(preferencelist=('plain')).get_content()
print(text)
Run Code Online (Sandbox Code Playgroud)

Python 2 中有一个名为 emaildata 的模块可以完成这项工作。

提取元数据信息

import email
from emaildata.metadata import MetaData

message = email.message_from_file(open('message.eml'))
extractor = MetaData(message)
data = extractor.to_dict()
print data.keys()
Run Code Online (Sandbox Code Playgroud)

提取附件信息

import email
from …
Run Code Online (Sandbox Code Playgroud)

metadata eml email-attachments python-3.x

4
推荐指数
1
解决办法
2万
查看次数