Pandas 将所有列读入单个列

Pandas reads all columns into a single column

我正在尝试加载一个用分号“;”分隔的 txt 文件,但是当使用 pandas' read_csv 时,它会将两列合并为一列。 .txt 文件如下所示:

Profile 1;Profile 1;
x;y;
[m];[m];
0;3.4467541e-010;
1.0053956e-007;3.5615887e-010;
2.0107912e-007;5.7246124e-010;
3.0161869e-007;6.8413124e-010;
4.0215825e-007;7.3333242e-010;
...
5.2280572e-006;1.9645013e-009;
5.3285968e-006;1.8215396e-009;

我的尝试采用以下形式:

df = pd.read_csv('textfile.txt', sep=';', header=2)

这个输出是:

data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 54 entries, 0 to 53
Data columns (total 1 columns):
 #   Column                Non-Null Count  Dtype
---  ------                --------------  -----
 0   [m]     [m]           54 non-null     object
dtypes: object(1)
memory usage: 560.0+ bytes

我也尝试过使用“with open()”的其他方法,但也没有成功。

你的分隔符是一个分号,在第二列之后你有另一个分号。 这就是为什么会出现这个问题。只需去掉每行中的最后一个分号和 运行 代码即可。 我不确定,但这对我有用。

正如@Reihaneh Kouhi 所报告的那样,问题是最后一个分号创建了一个额外的空列以及第一行和第三行(跳过)。
我在本地试过这个,它应该可以工作。
我只是跳过行然后删除最后一列

import pandas as pd

table = pd.read_csv("table.csv", sep=";",  skiprows=[0,2], skipinitialspace=True, engine='python')
table = table.iloc[:, :-1]
print(table)