2017-08-03 110 views
0

我已经合并了十个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

+0

后您使用的代码。 –

+0

我做过了,我只是试图从2个不同的列中绘制@ SamCraig – Hrihaan

回答

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_tablepandas

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 for i in 1,2,... 10

data =[pd.read_table("A_B_"+i+".txt", sep="\s+", header=None).values 
for i in range(1,11)] 

和访问像data[0]每个数据帧,等

+0

它不工作,说该文件不存在,但我已检查,该文件在该文件夹中。 – Hrihaan

+0

@Hrihaan你有熊猫吗?或者尝试在数据相同的目录下运行代码。 – Huang

+0

是的,黄,我使用蟒蛇,所以有熊猫,你可以建议我一种方式,我可以用nan来代替所有的空白空间,我尝试过许多种没有运气的东西。 – Hrihaan