【发布时间】:2014-07-11 17:09:42
【问题描述】:
所以我使用 pandas 来读取 excel 文件和 csv 文件。这些文件包含字符串和数字,而不仅仅是数字。问题是我的所有字符串都被转换为我根本不想要的 NaN。我不知道列的类型会提前是什么(实际上我的工作是处理解决这个问题的系统)所以我不能告诉熊猫它们会是什么(必须稍后再说)。我现在只想将每个单元格作为字符串读取。
这是我的代码
if csv: #check weather to read in excell file or csv
frame = pandas.read_csv(io.StringIO(data))
else:
frame = pandas.read_excel(io.StringIO(data))
tbl = []
print frame.dtypes
for (i, col) in enumerate(frame):
tmp = [col]
for (j, value) in enumerate(frame[col]):
tmp.append(unicode(value))
tbl.append(tmp)
我只需要能够生成一个按列排列的二维列表,我就可以从那里做任何事情。我还需要能够处理 Unicode(数据已经是 Unicode)。
如何构造 'tbl' 以使应该是字符串的单元格不会显示为 'NaN'?
【问题讨论】:
-
是 CSV 文件还是 Excel 文件出现问题?将示例文件添加到问题中,以便我们重现问题。
-
您阅读过文档parsers.read_csv 吗?您是否尝试过使用它 - 用参数做一些实验?
-
是的,我做到了。这就是我找到该功能的方式。我做了实验,这就是我发现这个问题的原因。
-
为了澄清我不能使用 dtype,因为在我读入文件之前我不知道标题名称是什么。
标签: python excel unicode pandas scipy