将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后无法读取头部的主要内容,如果未能解决你的问题,请参考以下文章