python从特定行位置的dataframe收集数据

2024-10-08 19:30:23 发布

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

我正在使用read\u csv将一个大约有200列的数据集导入pandas dataframe,其中有唯一的列名。你知道吗

Data.columns
Index([u'SAVERECORDER', u'SAVECHANNEL', u'STARTTIME', u'INT001', u'INT002',
       u'INT003', u'INT004', u'INT005', u'INT006', u'INT007',
       ...
       u'INT092', u'INT093', u'INT094', u'INT095', u'INT096', u'INT097',
       u'INT098', u'INT099', u'INT100', u'LSTIME'],
      dtype='object', length=104)

我想从INT001到INT099的每一列中提取第100行。如果列数不多,我会手动完成,但我不知道如何从all中提取特定的行号并存储在numpy数组中。所有列INT001到INT099都包含双精度温度值。你知道吗


Tags: columnscsv数据dataframepandasreaddataindex
2条回答

数据:

In [24]: df
Out[24]:
   a  b  c  INT001  INT002  INT003
0  8  1  1       4       2       6
1  2  9  2       5       3       6
2  4  2  9       3       5       2
3  3  2  9       9       2       7
4  4  4  3       7       8       9
5  1  5  6       3       9       8
6  2  2  9       6       1       7
7  4  3  2       9       6       8
8  6  7  2       1       1       3
9  6  7  9       4       3       6

作为numpy数组:

In [30]: df.ix[7, 'INT001':'INT003'].values
Out[30]: array([9, 6, 8])

或者

In [32]: df.ix[7, df.filter(like='INT0').columns].values
Out[32]: array([9, 6, 8])

作为数据帧:

In [25]: df.ix[7:7, df.filter(like='INT0').columns]
Out[25]:
   INT001  INT002  INT003
7       9       6       8

或者

In [26]: df.ix[df.index==7, df.filter(like='INT0').columns]
Out[26]:
   INT001  INT002  INT003
7       9       6       8

或者

In [28]: df.ix[df.index==7, 'INT001':'INT003']
Out[28]:
   INT001  INT002  INT003
7       9       6       8

设置:

df = pd.DataFrame(np.random.randint(1,10,(10,6)), columns=list('abc')+['INT001','INT002','INT003'])

我将使用一个生成器来创建一个列表,其中包含您想要的所有列

    from string import zfill
    import numpy as np

    cols = ['INT0' + zfill(str(i), 2) for i in np.arange(1, 100, 1)]

然后您可以使用pandas.iloc按整数位置索引,如在here中读取的那样

然后可以对数组调用.sum()。你知道吗

相关问题 更多 >

    热门问题