首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python读取表格数据

使用python读取表格数据
EN

Stack Overflow用户
提问于 2016-01-31 06:48:48
回答 2查看 112关注 0票数 0

我有一个包含数字数据的文件,在表格format.It中总共有6列。我想在5维数组中读取并存储5列的值,并将第6列的值存储到另一个数组中。我尝试使用numpyloadtxt(),但它将所有列加载到一个列中。甚至我尝试使用带有unpack参数的loadtext(),但是它将每一列存储到不同的变量中。我在"stackoverflow“中搜索同样类型的问题,但没有找到任何东西。下面是我的数据示例

代码语言:javascript
复制
5000    0   0.3048  71.3    0.00266337  121.301
6300    0   0.3048  71.3    0.00266337  119.541
8000    0   0.3048  71.3    0.00266337  117.151
10000   0   0.3048  71.3    0.00266337  115.391
12500   0   0.3048  71.3    0.00266337  112.241
16000   0   0.3048  71.3    0.00266337  108.721
EN

回答 2

Stack Overflow用户

发布于 2016-01-31 06:53:38

pandas包与read_csvilocvalues方法配合使用:

代码语言:javascript
复制
import pandas as pd
from io import StringIO

data ="""
5000    0   0.3048  71.3    0.00266337  121.301
6300    0   0.3048  71.3    0.00266337  119.541
8000    0   0.3048  71.3    0.00266337  117.151
10000   0   0.3048  71.3    0.00266337  115.391
12500   0   0.3048  71.3    0.00266337  112.241
16000   0   0.3048  71.3    0.00266337  108.721
"""

df = pd.read_csv(StringIO(data), sep='\s+', header=None)

a = df.iloc[:, :5].values
b = df.iloc[:, 5].values

In [192]: a
Out[192]: 
array([[  5.00000000e+03,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  6.30000000e+03,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  8.00000000e+03,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  1.00000000e+04,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  1.25000000e+04,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  1.60000000e+04,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03]])

In [193]: b
Out[193]: array([ 121.301,  119.541,  117.151,  115.391,  112.241,  108.721])
票数 0
EN

Stack Overflow用户

发布于 2016-01-31 06:56:55

如果您想要使用不带pandas的NumPy的解决方案,请考虑读入整个数据,然后使用np.hsplit

代码语言:javascript
复制
In [75]: data = np.loadtxt('data.txt')

In [76]: d, e = np.hsplit(data, (-1,))     # split at the final column

In [77]: d
Out[77]: 
array([[  5.00000000e+03,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  6.30000000e+03,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  8.00000000e+03,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  1.00000000e+04,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  1.25000000e+04,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03],
       [  1.60000000e+04,   0.00000000e+00,   3.04800000e-01,
          7.13000000e+01,   2.66337000e-03]])

In [78]: e
Out[78]: 
array([[ 121.301],
       [ 119.541],
       [ 117.151],
       [ 115.391],
       [ 112.241],
       [ 108.721]])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35108169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档