在列中拆分数据并将其存储为二维数组

时间:2018-04-25 15:04:55

标签: python pandas csv numpy

我有这种形式的数据:

49907 87063
42003 51519
21301 46100
97578 26010
52364 86618
25783 71775
1617 29096
2662 47428
74888 54550
17182 35976
86973 5323

...

我需要在最后遍历for line in file

我想将它们拆分为第一列值存储在第一列中,第二列值存储在第二列中,因此每当我调用Array_one[0], Array_two[0]时,我将获得第一行值,如49907 87063和其他价值观。

2 个答案:

答案 0 :(得分:6)

您可以将空格用作分隔符。

<强>实施例

import pandas as pd
df = pd.read_csv(filename, sep="\s+", names = ["A", "B"])
print(df["A"][0])
print(df["B"][0])

<强>输出:

49907
87063

for i in df.values:
    print(i)

<强>输出

[49907 87063]
[42003 51519]
[21301 46100]
[97578 26010]
[52364 86618]
[25783 71775]
[ 1617 29096]
[ 2662 47428]
[74888 54550]
[17182 35976]
[86973  5323]

答案 1 :(得分:1)

您可以使用numpy.genfromtxt直接提取到numpy数组:

A = np.genfromtxt(file, dtype=int)

空格是默认分隔符。

然后,您可以使用标准numpy索引/切片:

  • 提取第一行:A[0];第二栏:A[:, 1]
  • 提取第一行的第一个元素:A[0, 0]
  • 要提取第二列的第一个元素:A[0, 1]

按行迭代整个数组:

for i in range(A.shape[0]):
    print(A[i])