pd.read_excel是否支持sep参数?读取xlsx文件列拆分求助
解决pd.read_excel读取后仅返回单列的问题
先回答你关于sep参数的疑问
首先明确:pd.read_excel()完全不支持sep参数。这个参数是给读取纯文本分隔文件(比如.csv)的函数(像pd.read_csv())设计的,Excel有专门的二进制格式解析逻辑,所以在pd.read_excel()里加sep根本不会起作用哦。
拆分单列数据为三列的具体方案
你的问题根源是:Excel文件里每一行的Country、Year、Export数据都被塞进了同一个单元格,用逗号做分隔符,所以pd.read_excel读取时就把每个单元格当成了单列内容。这里有两种简单的解决方法:
方法1:读取后拆分现有列
这是最直接的处理方式,先读文件,再对单列内容做拆分:
import pandas as pd # 先读取你的Excel文件(此时得到只有一列的DataFrame) df = pd.read_excel("C:/your_file_path.xlsx") # 拆分单列内容,expand=True会自动把拆分后的内容变成多列 split_df = df.iloc[:, 0].str.split(',', expand=True) # 给新列设置你需要的名称 split_df.columns = ["Country", "Year", "Export"] # 可选操作:把Year和Export转成数值类型(根据你的业务需求来) split_df["Year"] = split_df["Year"].astype(int) split_df["Export"] = split_df["Export"].astype(int)
方法2:按CSV格式读取(如果文件本质是CSV存成了xlsx)
如果你的.xlsx文件其实是把CSV内容直接复制粘贴进去的,也可以先把文件另存为.csv格式,然后用pd.read_csv()读取,一步到位:
# 假设你已经把文件另存为csv格式 df = pd.read_csv("C:/your_file_path.csv", names=["Country", "Year", "Export"])
这样处理后,就能得到你想要的三列结构啦。
内容的提问来源于stack exchange,提问作者stomar02
相关产品推荐
相关产品推荐

