您正在以CSV文件的形式读取电子邮件,因此文件内容将是:在每个制表符分隔符处拆分以创建列;无论您选择了哪种分隔符,我都怀疑这是一个错误的选择,因为任何字符都可能出现在您的电子邮件正文中;
电子邮件中的每一行都将创建一个新行(这可能解释了您的500行)
既然电子邮件不是CSV文件,为什么不编写自己的函数,将每个文件分别读取为一个字符串,然后从所有这些字符串中创建一个数据帧。例如,要以字符串形式读取当前目录中的所有文件:data = []
path = '.'
files = [f for f in os.listdir(path) if os.path.isfile(f)]
for f in files:
with open (f, "r") as myfile:
data.append(myfile.read())
df = pd.DataFrame(data)
下面是一个实际的例子:$ ls .
test1.txt test2.txt load_files.py
$ cat load_files.py
import pandas as pd
import os
data = []
path = '.'
files = [f for f in os.listdir(path) if os.path.isfile(f)]
for f in files:
with open (f, "r") as myfile:
data.append(myfile.read())
df = pd.DataFrame(data)
print df
$ cat test1.txt
asdasd
ada
adasd
$ cat test2.txt
sasdad
asd
dadaadad
$ python load_files.py
0
0 asdasd\nada\nadasd\n
1 sasdad\nasd\ndadaadad\n\n
2 import pandas as pd\nimport os\n\ndata = []\np...