关键词

如何使用pandas读取txt文件中指定的列(有无标题)

使用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=Truesep来指定。
  • 对于有标题的txt文件,默认将第一行作为列名,可以通过传递header=None来获得默认的列索引。
  • 对于无标题的txt文件,需要设置header=None来告知pandas读取的文件没有标题,并使用默认的列索引。
  • 若数据种类太多,我们可以用df.head()函数来查看前几行转化是否正确,若列与行读取正确,则数据读取完毕。

以上是使用pandas读取txt文件中指定的列的攻略,希望对您有帮助!

本文链接:http://task.lmcjl.com/news/14578.html

展开阅读全文