将csv中某些列的所有值读入一个数组python

时间:2018-05-11 13:57:11

标签: python pandas csv

我有以下格式的csv格式数据:

A   B   a1  a2  a3  a4  a5
1   0   100 34  44  1   1
2   0   101 1   44  11  3
3   0   105 3   55  21  22
4   0   45  4   52  1   45
5   0   57  5   42  3   56
6   0   89  78  1   3   67
7   0   34  99  2   4   98
8   0   57  23  2   5   2

我想将a1列中的数据存储在一个数组中,以提供:

100
34
44
1
1
101
1
44
.
.

我可以使用python通过将csv中我想要的列读入pandas数据帧来实现。将每列转换为数组,循环遍历每个数组,并将值附加到一个新数组。我知道这是非常低效的。有一个更好的方法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

使用https://firebase.google.com/docs/functions/local-emulator#invoke_realtime_database_functions按列名称选择列:

A = df[['a2', 'a3', 'a4', 'a5']].values.ravel()

numpy.ravel

A = df.filter(like='a').values.ravel()

或按位置 - 从第二列到结尾:

A = df.iloc[:, 2:].values.ravel()
print (A)
[100  34  44   1   1 101   1  44  11   3 105   3  55  21  22  45   4  52
   1  45  57   5  42   3  56  89  78   1   3  67  34  99   2   4  98  57
  23   2   5   2]