将excel转换为csv后无法读取头部

Posted

技术标签:

【中文标题】将excel转换为csv后无法读取头部【英文标题】:unable to read head after converting excel to csv 【发布时间】:2020-11-14 13:26:58 【问题描述】:

我正在尝试读取一个 excel 文件,将其转换为 csv 并加载其头部:

df = pd.read_excel("final.xlsx", sheet_name="NewCustomerList")
# df = df.to_csv()
print(df.head(3))

不转换成csv,结果如下:

  Note: The data and information in this document is reflective of a hypothetical situation and client.  \
0                                         first_name                                                                                                                              
1                                            Chickie                                                                                                                              
2                                              Morly     

但是,如果我取消注释转换,我会收到以下错误:

'str' object has no attribute 'head'

我猜是因为第一行数据。我还能如何正确转换并阅读它?

【问题讨论】:

在文档中,to_csv 返回 None 或字符串。 pandas.pydata.org/pandas-docs/stable/reference/api/… 【参考方案1】:

to_csv() 用于将表保存到磁盘,它对内存存储的表没有影响并返回 None。因此,您正在使用注释行将 df 变量更改为 None。

如果您只想以特定格式在屏幕上显示表格,不妨看看to_string()

如果您绝对必须将 df 的每一行作为逗号分隔的字符串,然后尝试列表理解:

my_csv_list = [','.join(map(str, row)) for row in df.itertuples()]

注意 csv 格式,如果任何数据点包含逗号,那么在解码回表格时您将陷入噩梦。

【讨论】:

【参考方案2】:

根据documentation,Pandas 的to_csv() 方法返回None(无)或字符串。

您可能还需要使用类似this answer 的内容将字符串再次转换为数据帧并使用其头部。

【讨论】:

以上是关于将excel转换为csv后无法读取头部的主要内容,如果未能解决你的问题,请参考以下文章

java怎么将xlsx转换成csv格式

读取 xls,将所有日期转换为正确格式,-> 写入 csv

将从excel读取的科学数字转换为csv

如何上传Excel直接读取里面的数据,不用鎒xcel文件后再读取

从 bmp 文件的头部读取

使用 lambda 中的 pandas 从 s3 读取 excel 文件并转换为 csv