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)
我正在尝试加载一个用分号“;”分隔的 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)