我的数据框:
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) 我有一个带有一些附件的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)