使用pandas读取txt文件的指定列需要通过read_table
函数实现,可以根据是否有标题,选择传递不同的参数进行读取。
有标题的txt文件
假设我们有如下的txt文件,名为 sample.txt
,每项数据用制表符(\t
)分割,并且第一行为标题,包括姓名
、性别
、 年龄
、 身高
、体重
:
姓名 性别 年龄 身高(cm) 体重(kg)
Alice Female 25 170 60
Bob Male 30 180 75
Chris Male 28 175 70
我们希望读取姓名
、性别
、身高
三列数据。可以使用以下代码:
import pandas as pd
# 读取txt文件
df = pd.read_table("sample.txt")
# 提取指定列
df = df[["姓名", "性别", "身高(cm)"]]
# 输出结果
print(df)
运行以上代码,输出结果如下:
姓名 性别 身高(cm)
0 Alice Female 170
1 Bob Male 180
2 Chris Male 175
在读取txt文件时,我们使用了pd.read_table
函数,它会根据文件中的制表符进行分割,对于带有标题的文件,pandas会默认使用第一行作为列名。
提取指定列时,我们使用了dataframe
的切片方式,通过传递列名的列表,提取所需的几列数据。
无标题的txt文件
再来看一个无标题的txt文件示例,假设我们有如下txt文件,名为 score.txt
,每项数据用空格分割,没有标题:
Alice 90 85 95
Bob 80 75 70
Chris 95 85 80
我们需要读取第一列(学生姓名)和第三列(语文成绩)的数据,可以使用以下代码:
import pandas as pd
# 读取txt文件
df = pd.read_table("score.txt", header=None, delim_whitespace=True)
# 提取指定列
df = df[[0, 2]]
# 输出结果
print(df)
运行以上代码,输出结果如下:
0 2
0 Alice 95
1 Bob 70
2 Chris 80
在读取无标题的txt文件时,我们需要指定header=None
,告知pandas文件中没有标题,需要使用默认的列索引。
由于数据是用空格分割的,所以我们需要通过delim_whitespace=True
去识别空格符。如果数据用其他分隔符,比如逗号,我们应该使用sep=','
来指定。同时,在切片时我们使用了列表索引的方式,直接传递列的索引号即可。
注意事项
在使用pandas读取txt文件时,需要注意以下几点:
- pandas默认使用的分割符是制表符
\t
,如果数据用其他字符分隔,需要使用delim_whitespace=True
或sep
来指定。 - 对于有标题的txt文件,默认将第一行作为列名,可以通过传递
header=None
来获得默认的列索引。 - 对于无标题的txt文件,需要设置
header=None
来告知pandas读取的文件没有标题,并使用默认的列索引。 - 若数据种类太多,我们可以用
df.head()
函数来查看前几行转化是否正确,若列与行读取正确,则数据读取完毕。
以上是使用pandas读取txt文件中指定的列的攻略,希望对您有帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用pandas读取txt文件中指定的列(有无标题) - Python技术站