我在xlsx文件中有以下表格:
emp_num | Name | Salary
551234 | Joe | 5000
551234 | Dan | 5001
551234 | James | 5002
551234 | Li | 5003
551234 | Suzi | 5004
我尝试使用sep= " | "
分隔列
这是我的代码:
df = pd.read_excel('I21.xlsx', sep=' | ', header=None)
运行代码之后我得到了:
我只使用header=None
来更清楚地显示只有一列。
0
0 emp_num | Name | Salary
1 551234 | Joe | 5000
2 551234 | Dan | 5001
3 551234 | James | 5002
4 551234 | Li | 5003
答案 0 :(得分:1)
您可以按如下方式使用read_csv()
,请注意sep
参数接受正则表达式:
sep:str,默认',' 分隔符使用。如果sep为None,则会尝试自动确定 这个。超过1个字符且与'\ s +'不同的分隔符将是 解释为正则表达式,将强制使用python解析 引擎并将忽略数据中的引号。正则表达式示例:'\ r \ t'
所以|
需要使用\
进行转义,否则会在正则表达式中解释为or
个模式:
import pandas as pd
from io import StringIO
pd.read_csv(StringIO("""emp_num | Name | Salary
551234 | Joe | 5000
551234 | Dan | 5001
551234 | James | 5002
551234 | Li | 5003
551234 | Suzi | 5004"""), sep = " \| ")
答案 1 :(得分:1)
你可以像“.parse”一样使用
import pandas as pd
xls_file = pd.ExcelFile('file path')
df = xls_file.parse('Sheet1')
<强>输出:强>
emp_num Name Salary
0 551234 Joe 5000
1 551234 Dan 5001
2 551234 James 5002
3 551234 Li 5003
4 551234 Suzi 5004
答案 2 :(得分:0)
您可以使用sep =&#34; |&#34;将其作为csv文件阅读。
或者您可以使用分隔符&#34; |&#34;将其读入Excel。所以它有多列。
read_excel没有sep参数。