缺少列值

时间:2017-08-03 21:13:22

标签: python numpy multiple-columns

我已经水平合并了10个txt文件(A_1,A_2 ...... A_10和B_1,B_2 ..... B_10),输出为A_B_1,A_B_2 ...... A_B_3 ...... .....问题是文件A有大而固定的行数(4320),而B的行数较小且波动较大(2689,3078 ...),所以每当我尝试使用numpy加载合并文件时,当B没有值时,我从行开始面临错误的列数错误。任何关于如何解决这个问题的建议都将不胜感激。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook
data=np.loadtxt('/Users/Hrihaan/Desktop/Code/A_B_5.txt')
time=data[:,1]
V=data[:,3]
plt.plot(time,V)

Missing Column Values at the point when B values end

1 个答案:

答案 0 :(得分:1)

假设您有一个名为" A_B_5.txt"的文件。 内容如下:

3044 1995 9.0 3.8 3044 1995 9.0 3.8 
3044 1995 9.0 3.8 3044 1995 9.0 3.8 
3044 1995 9.0 3.8 3044 1995 9.0 3.8 
3044 1995 9.0 3.8
3044 1995 9.0 3.8
3044 1995 9.0 3.8

您可以使用read_table中的pandas

import pandas as pd
data= pd.read_table("A_B_5.txt", sep="\s+", header=None).values

你会得到:

array([[ 3044. ,  1995. , 9. , 3.8,  3044. ,  1995. , 9. , 3.8],
   [ 3044. ,  1995. , 9. , 3.8,  3044. ,  1995. , 9. , 3.8],
   [ 3044. ,  1995. , 9. , 3.8,  3044. ,  1995. , 9. , 3.8],
   [ 3044. ,  1995. , 9. , 3.8, nan, nan, nan, nan],
   [ 3044. ,  1995. , 9. , 3.8, nan, nan, nan, nan],
   [ 3044. ,  1995. , 9. , 3.8, nan, nan, nan, nan]])

==

A_B_i.txt中阅读i的{​​{1}}个文件列表:

1,2,... 10

并访问每个数据框,如data =[pd.read_table("A_B_"+i+".txt", sep="\s+", header=None).values for i in range(1,11)] data[0]等。