在python中使用panda从文本文件创建列表

2024-06-28 19:38:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件(数据.txt)如下所示:

name height  weight
    A   15.5    55.7
    B   18.9    51.6
    C   17.4    67.3
    D   11.4    34.5
    E   23.4    92.1

我想用python为每一列使用pandas列出列表。在

^{pr2}$

我还想避免列表中的标题(姓名、身高、体重)。在

打印(df)提供如下:

name\theight\tweight
0        A\t15.5\t55.7
1        B\t18.9\t51.6
2        C\t17.4\t67.3
3        D\t11.4\t34.5
4        E\t23.4\t92.1

Tags: 数据nametxt标题pandasdf列表姓名
3条回答

要将一个序列(例如,一个数据帧的一列)转换成一个没有头的普通Python值列表,请使用Series方法tolist()。在

In [9]: df
Out[9]: 
  name  height  weight
0    A    15.5    55.7
1    B    18.9    51.6
2    C    17.4    67.3
3    D    11.4    34.5
4    E    23.4    92.1

In [10]: name, height, weight = [df[col].tolist() for col in df]

In [11]: name
Out[11]: ['A', 'B', 'C', 'D', 'E']

等等。在

不清楚您为什么要使用pandas,因为您还没有明确说明为什么要在列表中使用它们,所以下面是一个使用csv的解决方案:

import csv

with open('data.txt') as f:
    reader = csv.DictReader(f, delimiter='\t')
    rows = list(reader)

现在,rows是一个字典列表,每个字典都有一个表示行的头;要获取每个列,请执行以下操作:

^{pr2}$

试试这样的方法:

import pandas
df = pandas.read_csv('data.txt')
# Assuming there's a columns with the headers 'name', 'height', 'weight'
name = list(df['name'])
height = list(df['height'])
weight = list(df['weight'])
print name
print height
print weight

在玩了this example并查看了read_csv的文档后,我想这可能会起作用

如果你想让邮件头更具动态性,你可以这样做

^{pr2}$

它将遍历所有列并为它们创建列表。在

相关问题 更多 >